:root {
    --ink-950: #07101f;
    --ink-900: #0b172a;
    --ink-800: #16243a;
    --ink-700: #2b3c55;
    --ink-600: #526279;
    --ink-500: #718096;
    --surface: #ffffff;
    --surface-soft: #f5f7fb;
    --line: #e5eaf2;
    --cyan: #12b8c8;
    --blue: #2457e6;
    --violet: #7857e8;
    --emerald: #0ba77b;
    --amber: #ee9d18;
    --rose: #e1516f;
    --radius-sm: 12px;
    --radius-md: 18px;
    --radius-lg: 26px;
    --shadow-sm: 0 8px 24px rgba(12, 28, 52, .07);
    --shadow-md: 0 18px 50px rgba(12, 28, 52, .12);
    --shadow-lg: 0 30px 80px rgba(4, 15, 32, .2);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { min-height: 100%; }
body {
    margin: 0;
    color: var(--ink-900);
    background: #f4f7fb;
    font-family: Inter, Aptos, "Segoe UI Variable", "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}
a { color: var(--blue); text-decoration: none; }
h1, h2, h3, h4, h5, h6 { color: var(--ink-950); letter-spacing: -.025em; }
button, input, select, textarea { font: inherit; }

/* Public portal */
.public-portal {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 78% 0%, rgba(28, 202, 199, .15), transparent 27rem),
        radial-gradient(circle at 3% 32%, rgba(75, 92, 234, .17), transparent 26rem),
        linear-gradient(150deg, #06101f 0%, #0a182b 54%, #10223a 100%);
}
.public-portal::before {
    content: ""; position: absolute; inset: 0; opacity: .22; pointer-events: none;
    background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size: 56px 56px;
    mask-image: linear-gradient(to bottom, #000, transparent 62%);
}
.public-portal__glow { position: absolute; border-radius: 50%; filter: blur(2px); pointer-events: none; }
.public-portal__glow--one { width: 420px; height: 420px; right: -220px; top: 530px; background: rgba(27, 190, 185, .08); }
.public-portal__glow--two { width: 380px; height: 380px; left: -240px; top: 920px; background: rgba(104, 82, 223, .09); }

.public-header { position: relative; z-index: 4; min-height: 96px; display: flex; align-items: center; justify-content: space-between; padding-inline: 28px; }
.brand-lockup { display: inline-flex; align-items: center; gap: 14px; color: #fff; }
.brand-lockup:hover { color: #fff; }
.brand-lockup__mark { width: 112px; height: 52px; display: grid; place-items: center; padding: 9px 12px; border: 1px solid rgba(94,218,211,.22); border-radius: 15px; background: linear-gradient(145deg,#102d48,#0a2138); box-shadow: 0 12px 30px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.06); }
.brand-lockup__mark img { width: 100%; height: 100%; object-fit: contain; }
.brand-lockup__copy { display: flex; flex-direction: column; gap: 1px; }
.brand-lockup__copy strong { font-size: .94rem; letter-spacing: .01em; }
.brand-lockup__copy small { color: #8fa0b7; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.portal-login-button { display: inline-flex; align-items: center; gap: 10px; color: #fff; border: 1px solid rgba(255,255,255,.19); border-radius: 999px; padding: 11px 17px; background: rgba(255,255,255,.07); backdrop-filter: blur(14px); transition: .25s ease; }
.portal-login-button:hover { color: var(--ink-950); background: #fff; transform: translateY(-2px); }

.portal-hero { position: relative; z-index: 2; min-height: 580px; display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 40px; padding: 56px 28px 76px; }
.portal-hero__copy { max-width: 720px; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; color: #63ddd5; font-size: .75rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.portal-hero h1 { margin: 21px 0 24px; color: #fff; font-size: clamp(3.2rem, 6vw, 6.35rem); font-weight: 720; line-height: .98; letter-spacing: -.065em; }
.portal-hero h1 span { color: transparent; background: linear-gradient(90deg, #6ce3db 0%, #8bb7ff 55%, #b9a8ff 100%); background-clip: text; -webkit-background-clip: text; }
.portal-hero__copy > p { max-width: 660px; color: #aab6c8; font-size: 1.08rem; line-height: 1.8; }
.portal-hero__meta { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-top: 32px; color: #b9c3d1; font-size: .84rem; }
.portal-hero__meta span { display: inline-flex; align-items: center; gap: 8px; }
.portal-hero__meta i { color: #62dcd4; }
.portal-hero__visual { position: relative; min-height: 440px; display: grid; place-items: center; }
.hero-orbit { position: absolute; border: 1px solid rgba(126, 211, 217, .18); border-radius: 50%; animation: portal-spin 28s linear infinite; }
.hero-orbit::after { content: ""; position: absolute; width: 8px; height: 8px; border-radius: 50%; background: #70e1d8; box-shadow: 0 0 22px #70e1d8; top: 18%; left: 5%; }
.hero-orbit--outer { width: 410px; height: 410px; }
.hero-orbit--inner { width: 292px; height: 292px; animation-direction: reverse; animation-duration: 21s; border-style: dashed; }
.hero-core { position: relative; z-index: 2; width: 210px; height: 210px; display: grid; place-content: center; gap: 15px; text-align: center; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; background: radial-gradient(circle at 35% 25%, rgba(255,255,255,.16), rgba(10,29,48,.84)); box-shadow: inset 0 0 42px rgba(41,204,197,.12), 0 30px 80px rgba(0,0,0,.35); backdrop-filter: blur(18px); }
.hero-core img { width: 128px; filter: brightness(0) invert(1); opacity: .96; }
.hero-core span { color: #66ddd6; font-size: .61rem; font-weight: 800; letter-spacing: .22em; }
.hero-float { position: absolute; z-index: 3; display: flex; align-items: center; gap: 9px; padding: 10px 14px; color: #dfe8f4; font-size: .78rem; font-weight: 700; border: 1px solid rgba(255,255,255,.13); border-radius: 13px; background: rgba(13,32,53,.78); box-shadow: 0 15px 40px rgba(0,0,0,.2); backdrop-filter: blur(15px); animation: portal-float 5s ease-in-out infinite; }
.hero-float i { color: #68ded7; font-size: 1.05rem; }
.hero-float--one { top: 54px; right: 48px; }
.hero-float--two { left: 24px; bottom: 80px; animation-delay: -1.7s; }
.hero-float--three { right: 2px; bottom: 24px; animation-delay: -3.2s; }

.module-showcase, .public-announcements { position: relative; z-index: 3; padding: 80px 28px; }
.module-showcase { border-top: 1px solid rgba(255,255,255,.08); }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 34px; }
.section-heading h2 { margin: 8px 0 0; color: #fff; font-size: clamp(2rem, 4vw, 3.15rem); font-weight: 700; letter-spacing: -.045em; }
.section-heading > p { max-width: 350px; margin: 0; color: #8f9eb2; line-height: 1.65; }
.module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.module-card { --accent: var(--cyan); position: relative; min-height: 330px; display: flex; flex-direction: column; overflow: hidden; padding: 22px; text-align: left; color: #fff; border: 1px solid rgba(255,255,255,.105); border-radius: 22px; background: linear-gradient(150deg, rgba(255,255,255,.095), rgba(255,255,255,.035)); box-shadow: 0 16px 40px rgba(0,0,0,.12); backdrop-filter: blur(12px); transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease; }
.module-card::before { content: ""; position: absolute; width: 150px; height: 150px; right: -70px; top: -80px; border-radius: 50%; background: var(--accent); opacity: .12; filter: blur(6px); transition: .35s ease; }
.module-card:hover { color: #fff; transform: translateY(-9px); border-color: color-mix(in srgb, var(--accent) 55%, transparent); box-shadow: 0 28px 65px rgba(0,0,0,.24); }
.module-card:hover::before { transform: scale(1.55); opacity: .2; }
.accent-cyan { --accent: var(--cyan); }
.accent-amber { --accent: var(--amber); }
.accent-violet { --accent: var(--violet); }
.accent-emerald { --accent: var(--emerald); }
.accent-rose { --accent: var(--rose); }
.module-card__topline { display: flex; justify-content: space-between; align-items: center; }
.module-card__icon { width: 50px; height: 50px; display: inline-grid; place-items: center; flex: none; color: var(--accent); font-size: 1.35rem; border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); border-radius: 15px; background: color-mix(in srgb, var(--accent) 12%, transparent); }
.module-card__arrow { width: 36px; height: 36px; display: grid; place-items: center; color: #8796aa; border: 1px solid rgba(255,255,255,.11); border-radius: 50%; transition: .25s ease; }
.module-card:hover .module-card__arrow { color: #fff; border-color: var(--accent); transform: rotate(45deg); }
.module-card__content { display: flex; flex-direction: column; margin-top: 39px; }
.module-card__content small { margin-bottom: 8px; color: var(--accent); font-size: .67rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.module-card__content strong { color: #fff; font-size: 1.5rem; letter-spacing: -.03em; }
.module-card__content > span { margin-top: 13px; color: #93a1b5; font-size: .88rem; line-height: 1.65; }
.module-card__footer { display: flex; align-items: center; gap: 7px; margin-top: auto; padding-top: 22px; color: #c8d2df; font-size: .78rem; font-weight: 750; border-top: 1px solid rgba(255,255,255,.08); }
.module-card:hover .module-card__footer { color: var(--accent); }

.public-announcements { padding-top: 74px; padding-bottom: 100px; }
.section-heading--announcements { padding-top: 75px; border-top: 1px solid rgba(255,255,255,.08); }
.announcement-count { padding: 8px 12px; color: #b9c5d4; font-size: .76rem; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; background: rgba(255,255,255,.05); }
.announcement-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.announcement-card { min-height: 260px; display: flex; flex-direction: column; padding: 25px; border: 1px solid rgba(255,255,255,.1); border-radius: 20px; background: rgba(255,255,255,.055); transition: .25s ease; }
.announcement-card:hover { transform: translateY(-5px); border-color: rgba(99,221,213,.3); background: rgba(255,255,255,.075); }
.announcement-card__meta { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.announcement-card__date { color: #67dcd5; font-size: .72rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.announcement-card__status { padding: 4px 8px; color: #d9b96f; font-size: .67rem; border-radius: 999px; background: rgba(238,157,24,.11); }
.announcement-card h3 { margin: 24px 0 12px; color: #fff; font-size: 1.18rem; line-height: 1.35; }
.announcement-card > p { display: -webkit-box; overflow: hidden; margin: 0 0 25px; color: #93a1b4; font-size: .87rem; line-height: 1.7; white-space: pre-line; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.announcement-card footer { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 17px; border-top: 1px solid rgba(255,255,255,.075); }
.person-avatar { width: 34px; height: 34px; display: grid; place-items: center; color: #08242a; font-size: .7rem; font-weight: 850; border-radius: 10px; background: linear-gradient(135deg, #78e3dc, #8bb7ff); }
.announcement-card footer > span:last-child { display: flex; flex-direction: column; }
.announcement-card footer strong { color: #dce5f0; font-size: .76rem; }
.announcement-card footer small { color: #718095; font-size: .65rem; }
.portal-empty-state { display: flex; align-items: center; justify-content: center; gap: 18px; min-height: 180px; color: #7f8fa5; border: 1px dashed rgba(255,255,255,.15); border-radius: 22px; }
.portal-empty-state i { font-size: 2rem; }
.portal-empty-state div { display: flex; flex-direction: column; }
.portal-empty-state strong { color: #d8e0eb; }
.portal-empty-state span { font-size: .84rem; }
.portal-loading { display: flex; justify-content: center; gap: 7px; padding: 75px; }
.portal-loading span { width: 8px; height: 8px; border-radius: 50%; background: #63ddd5; animation: portal-pulse 1s infinite alternate; }
.portal-loading span:nth-child(2) { animation-delay: .2s; }.portal-loading span:nth-child(3) { animation-delay: .4s; }
.public-footer { position: relative; z-index: 2; display: flex; justify-content: space-between; gap: 20px; padding: 26px 28px 34px; color: #64758c; font-size: .74rem; border-top: 1px solid rgba(255,255,255,.07); }

/* Public login dialog */
.portal-modal-backdrop { position: fixed; z-index: 1100; inset: 0; display: grid; place-items: center; padding: 22px; background: rgba(2, 9, 19, .76); backdrop-filter: blur(12px); animation: portal-fade .2s ease both; }
.portal-login-modal { position: relative; width: min(100%, 480px); padding: 34px; color: var(--ink-900); border: 1px solid rgba(255,255,255,.7); border-radius: 26px; background: rgba(255,255,255,.98); box-shadow: var(--shadow-lg); animation: portal-modal-in .28s cubic-bezier(.2,.8,.2,1) both; }
.portal-modal-close { position: absolute; top: 17px; right: 17px; width: 36px; height: 36px; color: var(--ink-600); border: 0; border-radius: 50%; background: #f0f3f7; transition: .2s ease; }
.portal-modal-close:hover { color: var(--ink-950); transform: rotate(8deg); background: #e6ebf2; }
.portal-login-modal__brand { display: flex; align-items: center; gap: 12px; margin-bottom: 30px; }
.portal-login-modal__brand > div { display: flex; flex-direction: column; }
.portal-login-modal__brand small { color: var(--ink-500); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.portal-login-modal__brand strong { color: var(--ink-900); }
.portal-login-modal h2 { margin: 0 0 7px; font-size: 2rem; font-weight: 750; }
.portal-login-modal > p { margin-bottom: 27px; color: var(--ink-600); }
.portal-login-alert { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; padding: 12px 14px; color: #a22b43; font-size: .82rem; border: 1px solid #f3c8d0; border-radius: 12px; background: #fff2f5; }
.portal-field { margin-bottom: 17px; }
.portal-field label { display: block; margin: 0 0 7px; color: var(--ink-700); font-size: .76rem; font-weight: 750; }
.portal-field > div { display: flex; align-items: center; gap: 10px; padding: 0 14px; border: 1px solid #d9e0ea; border-radius: 13px; background: #f9fafc; transition: .2s ease; }
.portal-field > div:focus-within { border-color: var(--cyan); background: #fff; box-shadow: 0 0 0 4px rgba(18,184,200,.1); }
.portal-field i { color: #8795a8; }
.portal-field input { width: 100%; padding: 13px 0; color: var(--ink-900); border: 0; outline: 0; background: transparent; }
.portal-field input::placeholder { color: #9ba7b7; }
.portal-submit { width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 7px; padding: 13px 18px; color: #fff; font-weight: 750; border: 0; border-radius: 13px; background: linear-gradient(110deg, #0b253d, #135a72); box-shadow: 0 12px 28px rgba(11,66,84,.22); transition: .22s ease; }
.portal-submit:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 32px rgba(11,66,84,.28); }
.portal-login-modal__security { display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 18px; color: #8793a3; font-size: .69rem; }

/* Authenticated shell */
.portal-app-shell { position: relative; min-height: 100vh; overflow: hidden; background: linear-gradient(145deg, #f3f6fb 0%, #f8fafc 55%, #edf4f6 100%); }
.portal-app-shell::before { content: ""; position: fixed; inset: 0; pointer-events: none; opacity: .36; background-image: radial-gradient(#9aa9bc 0.65px, transparent .65px); background-size: 22px 22px; mask-image: linear-gradient(115deg, #000, transparent 55%); }
.portal-app-shell__orb { position: fixed; border-radius: 50%; filter: blur(1px); pointer-events: none; }
.portal-app-shell__orb--one { width: 380px; height: 380px; right: -210px; top: 100px; background: rgba(38,184,188,.07); }
.portal-app-shell__orb--two { width: 320px; height: 320px; left: -220px; bottom: -70px; background: rgba(83,92,218,.06); }
.portal-app-content { position: relative; z-index: 1; max-width: 1640px; padding: 18px 28px 40px; }

.portal-topbar { position: sticky; z-index: 100; top: 14px; margin-bottom: 22px; }
.portal-topbar .navbar { min-height: 76px; padding: 10px 14px; border: 1px solid rgba(255,255,255,.8); border-radius: 20px; background: rgba(255,255,255,.88); box-shadow: 0 10px 35px rgba(25,43,70,.09); backdrop-filter: blur(22px); }
.portal-topbar__brand { display: flex; align-items: center; gap: 11px; min-width: 220px; color: var(--ink-900); }
.portal-topbar__brand:hover { color: var(--ink-900); }
.portal-topbar__brand > span { width: 88px; height: 43px; display: grid; place-items: center; padding: 8px 10px; border: 1px solid rgba(18,91,120,.18); border-radius: 12px; background: linear-gradient(145deg,#123653,#0b253d); box-shadow: inset 0 1px 0 rgba(255,255,255,.07),0 5px 14px rgba(17,49,75,.13); }
.portal-topbar__brand img { width: 100%; height: 100%; object-fit: contain; }
.portal-topbar__brand div { display: flex; flex-direction: column; }
.portal-topbar__brand strong { font-size: .85rem; }
.portal-topbar__brand small { color: var(--ink-500); font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; }
.portal-topbar__nav { align-items: center; gap: 3px; }
.portal-topbar__nav .nav-link { display: flex; align-items: center; gap: 7px; padding: 9px 11px !important; color: var(--ink-600); font-size: .78rem; font-weight: 680; border-radius: 10px; transition: .2s ease; }
.portal-topbar__nav .nav-link i { color: #8491a3; }
.portal-topbar__nav .nav-link:hover, .portal-topbar__nav .nav-link.active { color: #0f5863; background: #eaf7f7; }
.portal-topbar__nav .nav-link.active i { color: var(--cyan); }
.portal-user-menu { position: relative; margin-left: 10px; }
.portal-user-chip { display: flex; align-items: center; gap: 9px; margin: 0; padding: 7px 10px 7px 7px; text-align: left; border: 1px solid var(--line); border-radius: 13px; background: #f8fafc; transition: .2s ease; }.portal-user-chip:hover,.portal-user-chip[aria-expanded="true"] { border-color: #bcd9dc; background: #f0f9f9; box-shadow: 0 7px 18px rgba(29,72,83,.08); }
.portal-user-chip__avatar { width: 34px; height: 34px; display: grid; place-items: center; color: #fff; font-size: .68rem; font-weight: 850; border-radius: 10px; background: linear-gradient(135deg, #0e7580, #14b4b2); }
.portal-user-chip > span:nth-child(2) { display: flex; flex-direction: column; min-width: 105px; }
.portal-user-chip strong { max-width: 145px; overflow: hidden; color: var(--ink-800); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.portal-user-chip small { color: var(--ink-500); font-size: .62rem; }
.portal-user-chip > i { color: #8c98a8; font-size: .65rem; }
.portal-user-chip__chevron--open { transform: rotate(180deg); }
.portal-user-dropdown { position: absolute; z-index: 120; top: calc(100% + 9px); right: 0; width: 245px; padding: 7px; border: 1px solid #e0e5ec; border-radius: 14px; background: rgba(255,255,255,.98); box-shadow: 0 18px 45px rgba(22,39,61,.17); animation: portal-modal-in .18s ease both; }
.portal-user-dropdown::before { content: ""; position: absolute; right: 21px; top: -6px; width: 11px; height: 11px; border-top: 1px solid #e0e5ec; border-left: 1px solid #e0e5ec; background: #fff; transform: rotate(45deg); }
.portal-user-dropdown button { position: relative; z-index: 1; width: 100%; display: flex; align-items: center; gap: 11px; padding: 11px; text-align: left; color: #9f3048; border: 0; border-radius: 10px; background: transparent; transition: .18s ease; }.portal-user-dropdown button:hover { background: #fff0f3; }.portal-user-dropdown button > i { width: 34px; height: 34px; display: grid; place-items: center; flex: none; border-radius: 9px; background: #ffe5eb; }.portal-user-dropdown button span { display: flex; flex-direction: column; }.portal-user-dropdown button strong { font-size: .72rem; }.portal-user-dropdown button small { margin-top: 2px; color: #a27a83; font-size: .59rem; }
.portal-topbar__toggle { width: 42px; height: 42px; padding: 0; color: var(--ink-800); border: 1px solid var(--line); border-radius: 11px; }

/* Module sidebars */
.module-sidebar { --side-accent: var(--cyan); position: sticky; top: 112px; min-height: calc(100vh - 140px); display: flex; flex-direction: column; padding: 18px; overflow: hidden; color: #fff; border: 1px solid rgba(255,255,255,.08); border-radius: 22px; background: linear-gradient(165deg, #0b192c 0%, #10253b 100%); box-shadow: 0 20px 45px rgba(13,28,48,.16); }
.module-sidebar::after { content: ""; position: absolute; width: 180px; height: 180px; right: -110px; top: -90px; border-radius: 50%; background: var(--side-accent); opacity: .13; }
.sidebar-admin { --side-accent: var(--rose); }.sidebar-archive { --side-accent: var(--violet); }.sidebar-assets { --side-accent: var(--cyan); }.sidebar-projects { --side-accent: var(--emerald); }
.module-sidebar__heading { position: relative; z-index: 1; display: flex; align-items: center; gap: 11px; padding: 7px 5px 21px; border-bottom: 1px solid rgba(255,255,255,.08); }
.module-sidebar__heading > span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--side-accent); font-size: 1.1rem; border: 1px solid color-mix(in srgb, var(--side-accent) 38%, transparent); border-radius: 13px; background: color-mix(in srgb, var(--side-accent) 12%, transparent); }
.module-sidebar__heading div { display: flex; flex-direction: column; }
.module-sidebar__heading small { color: #788aa1; font-size: .59rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.module-sidebar__heading strong { color: #fff; font-size: .88rem; }
.module-sidebar__nav { display: flex; flex-direction: column; gap: 5px; margin-top: 17px; }
.module-sidebar__label { margin: 13px 9px 4px; color: #61738a; font-size: .57rem; font-weight: 850; letter-spacing: .14em; }
.module-sidebar__nav a { display: grid; grid-template-columns: 25px 1fr 14px; align-items: center; gap: 8px; padding: 11px 10px; color: #aab6c7; font-size: .76rem; font-weight: 650; border: 1px solid transparent; border-radius: 11px; transition: .2s ease; }
.module-sidebar__nav a > i:first-child { color: #73869e; font-size: .95rem; }.module-sidebar__nav a > i:last-child { color: #53677f; font-size: .58rem; }
.module-sidebar__nav a:hover, .module-sidebar__nav a.active { color: #fff; border-color: rgba(255,255,255,.07); background: rgba(255,255,255,.075); transform: translateX(2px); }
.module-sidebar__nav a.active { box-shadow: inset 3px 0 0 var(--side-accent); }
.module-sidebar__nav a.active > i:first-child { color: var(--side-accent); }
.module-sidebar__footer { display: flex; align-items: center; gap: 10px; margin-top: auto; padding: 13px; border: 1px solid rgba(255,255,255,.07); border-radius: 13px; background: rgba(255,255,255,.045); }
.module-sidebar__footer > i { color: var(--side-accent); }.module-sidebar__footer span { display: flex; flex-direction: column; }
.module-sidebar__footer strong { color: #dce4ee; font-size: .68rem; }.module-sidebar__footer small { color: #6e8097; font-size: .6rem; }

/* Existing Razor pages: unified design system */
.portal-app-content > .row { margin-inline: 0; }
.portal-app-content .card { border: 1px solid var(--line) !important; border-radius: 18px !important; background: rgba(255,255,255,.92); box-shadow: var(--shadow-sm) !important; }
.portal-app-content .card-header { padding: 16px 19px; border-bottom: 1px solid var(--line); border-radius: 18px 18px 0 0 !important; background: #fafbfd; }
.portal-app-content .card-body { padding: 19px; }
.portal-app-content .shadow, .portal-app-content .shadow-sm { box-shadow: var(--shadow-sm) !important; }
.portal-app-content .rounded, .portal-app-content .rounded-3 { border-radius: 14px !important; }
.portal-app-content h1 { font-size: 2rem; font-weight: 760; }.portal-app-content h2 { font-weight: 740; }.portal-app-content h3, .portal-app-content h4, .portal-app-content h5 { font-weight: 700; }
.portal-app-content .text-primary { color: #127b89 !important; }.portal-app-content .bg-primary { background-color: #116f7a !important; }.portal-app-content .border-primary { border-color: #33aab2 !important; }
.portal-app-content .btn { border-radius: 10px; font-size: .78rem; font-weight: 680; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.portal-app-content .btn:hover { transform: translateY(-1px); }
.portal-app-content .btn-primary { color: #fff; border-color: #106d79; background: linear-gradient(115deg, #0d7580, #11999a); box-shadow: 0 7px 16px rgba(15,117,128,.18); }
.portal-app-content .btn-primary:hover { border-color: #0a606a; background: linear-gradient(115deg, #096873, #0d898b); box-shadow: 0 10px 22px rgba(15,117,128,.24); }
.portal-app-content .btn-outline-primary { color: #0d7580; border-color: #78c3c7; }.portal-app-content .btn-outline-primary:hover { color: #fff; background: #0d7580; }
.portal-app-content .btn-danger { border-color: #d94764; background: #df516b; }.portal-app-content .btn-warning { color: #674210; border-color: #f0c475; background: #ffe4ac; }
.portal-app-content .form-control, .portal-app-content .form-select { min-height: 42px; color: var(--ink-800); border: 1px solid #d9e0e9; border-radius: 10px; background-color: #fbfcfe; }
.portal-app-content .form-control:focus, .portal-app-content .form-select:focus { border-color: #3eb2b8; background: #fff; box-shadow: 0 0 0 4px rgba(30,158,168,.1); }
.portal-app-content .form-label, .portal-app-content label { color: var(--ink-700); font-size: .77rem; font-weight: 680; }
.portal-app-content .input-group-text { color: #66768b; border-color: #d9e0e9; background: #f1f4f8; }
.portal-app-content .table-responsive { border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.portal-app-content .table { margin: 0; color: var(--ink-800); font-size: .79rem; }
.portal-app-content .table > :not(caption) > * > * { padding: 13px 14px; border-bottom-color: #edf0f5; }
.portal-app-content .table thead th { color: #66758a; font-size: .64rem; font-weight: 820; letter-spacing: .07em; text-transform: uppercase; background: #f7f9fc; }
.portal-app-content .table tbody tr { transition: background .16s ease; }.portal-app-content .table tbody tr:hover { background: #f6fbfb; }
.portal-app-content .badge { padding: .46em .72em; font-weight: 700; border-radius: 8px; }
.portal-app-content .alert { border: 1px solid var(--line); border-radius: 13px; }
.portal-app-content .nav-tabs { gap: 5px; border-bottom-color: var(--line); }.portal-app-content .nav-tabs .nav-link { color: var(--ink-600); border: 0; border-radius: 9px 9px 0 0; }.portal-app-content .nav-tabs .nav-link.active { color: #0e737d; box-shadow: inset 0 -2px #19a5aa; background: #eef9f9; }
.portal-app-content .modal-content { overflow: hidden; border: 1px solid rgba(255,255,255,.7); border-radius: 20px; box-shadow: var(--shadow-lg); }.portal-app-content .modal-header { border-bottom-color: var(--line); background: #f8fafc; }.portal-app-content .modal-footer { border-top-color: var(--line); background: #f8fafc; }
.portal-app-content .list-group-item { border-color: var(--line); }.portal-app-content .pagination .page-link { color: #0d7580; border-color: var(--line); }
.navbargrident { background: linear-gradient(100deg, #0b192d, #12344a) !important; }.yanMenuGrident { background: linear-gradient(165deg, #0b192c, #10253b) !important; }

/* Signed-in landing workspace */
.workspace-loading { min-height: 80vh; display: flex; align-items: center; justify-content: center; gap: 12px; color: var(--ink-600); }
.workspace-loading .spinner-border { width: 24px; height: 24px; color: var(--cyan); }
.workspace-hero { position: relative; min-height: 245px; display: flex; align-items: center; justify-content: space-between; gap: 35px; overflow: hidden; margin: 4px 0 26px; padding: 42px 46px; color: #fff; border-radius: 24px; background: linear-gradient(118deg, #0a192b 0%, #10364c 68%, #12636c 130%); box-shadow: 0 22px 55px rgba(12,34,57,.18); }
.workspace-hero::after { content: ""; position: absolute; width: 360px; height: 360px; right: -95px; top: -180px; border: 1px solid rgba(108,227,219,.18); border-radius: 50%; box-shadow: 0 0 0 55px rgba(108,227,219,.035), 0 0 0 110px rgba(108,227,219,.025); }
.workspace-hero > div { position: relative; z-index: 1; }
.workspace-kicker { display: inline-flex; align-items: center; gap: 7px; color: #6ee0d8; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.workspace-hero h1 { max-width: 790px; margin: 13px 0 10px; color: #fff; font-size: clamp(2rem, 4vw, 3.35rem); font-weight: 720; line-height: 1.06; letter-spacing: -.05em; }
.workspace-hero p { margin: 0; color: #9fadc0; }
.workspace-hero__date { min-width: 150px; display: flex; align-items: center; gap: 13px; padding: 15px 18px; border: 1px solid rgba(255,255,255,.12); border-radius: 17px; background: rgba(255,255,255,.07); backdrop-filter: blur(10px); }
.workspace-hero__date > span { color: #fff; font-size: 2.35rem; font-weight: 750; line-height: 1; }.workspace-hero__date div { display: flex; flex-direction: column; }.workspace-hero__date strong { color: #6ee0d8; font-size: .75rem; text-transform: uppercase; }.workspace-hero__date small { color: #8e9db0; font-size: .68rem; }
.workspace-section { margin-top: 29px; }
.workspace-section__heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 16px; padding: 0 4px; }
.workspace-section__heading > div > span { color: #0f9096; font-size: .61rem; font-weight: 850; letter-spacing: .14em; }.workspace-section__heading h2 { margin: 4px 0 0; font-size: 1.55rem; }.workspace-section__heading > small { color: var(--ink-500); font-size: .7rem; }
.workspace-module-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.workspace-module-card { --accent: var(--cyan); position: relative; min-height: 190px; display: flex; flex-direction: column; overflow: hidden; padding: 20px; color: var(--ink-800); border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.92); box-shadow: var(--shadow-sm); transition: .24s ease; }
.workspace-module-card::after { content: ""; position: absolute; width: 110px; height: 110px; right: -58px; top: -60px; border-radius: 50%; background: var(--accent); opacity: .1; transition: .25s ease; }
.workspace-module-card:hover { color: var(--ink-900); transform: translateY(-6px); border-color: color-mix(in srgb, var(--accent) 36%, var(--line)); box-shadow: var(--shadow-md); }.workspace-module-card:hover::after { transform: scale(1.35); opacity: .17; }
.workspace-module-card__icon { width: 43px; height: 43px; display: grid; place-items: center; color: var(--accent); font-size: 1.15rem; border: 1px solid color-mix(in srgb, var(--accent) 26%, transparent); border-radius: 12px; background: color-mix(in srgb, var(--accent) 9%, white); }
.workspace-module-card__copy { display: flex; flex-direction: column; margin-top: auto; }.workspace-module-card__copy small { color: var(--accent); font-size: .57rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }.workspace-module-card__copy strong { margin-top: 4px; color: var(--ink-900); font-size: 1.05rem; }.workspace-module-card__copy span { margin-top: 3px; color: var(--ink-500); font-size: .69rem; }
.workspace-module-card__arrow { position: absolute; right: 18px; bottom: 20px; color: #9aa6b5; font-size: .85rem; transition: .2s ease; }.workspace-module-card:hover .workspace-module-card__arrow { color: var(--accent); transform: translate(2px,-2px); }
.workspace-news { margin-bottom: 35px; }
.workspace-news-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.workspace-news-card { min-height: 185px; display: grid; grid-template-columns: 48px 1fr; gap: 16px; padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.9); box-shadow: var(--shadow-sm); transition: .22s ease; }.workspace-news-card:hover { transform: translateY(-3px); border-color: #c8e6e7; box-shadow: var(--shadow-md); }
.workspace-news-card__date { width: 46px; height: 54px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; border-radius: 12px; background: linear-gradient(145deg,#0c7180,#10a4a4); }.workspace-news-card__date span { font-size: 1.1rem; font-weight: 800; line-height: 1; }.workspace-news-card__date small { margin-top: 3px; font-size: .53rem; font-weight: 750; text-transform: uppercase; }
.workspace-news-card__content { min-width: 0; }.workspace-news-card__content > span { color: #14949a; font-size: .55rem; font-weight: 850; letter-spacing: .12em; }.workspace-news-card h3 { margin: 5px 0 7px; overflow: hidden; font-size: .95rem; text-overflow: ellipsis; white-space: nowrap; }.workspace-news-card p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--ink-600); font-size: .72rem; line-height: 1.55; white-space: pre-line; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }.workspace-news-card footer { margin-top: 12px; color: #8a97a8; font-size: .62rem; }
.workspace-news__loading, .workspace-empty { min-height: 150px; display: flex; align-items: center; justify-content: center; gap: 10px; color: var(--ink-500); border: 1px dashed #d6dee8; border-radius: 18px; background: rgba(255,255,255,.55); }.workspace-empty i { font-size: 1.8rem; }.workspace-empty div { display: flex; flex-direction: column; }.workspace-empty strong { color: var(--ink-700); }.workspace-empty span { font-size: .75rem; }

/* Approved purchase requests on workspace */
.approved-requests { margin: 42px 0 0; padding-top: 30px; border-top: 1px solid #dde4ec; }
.approved-requests__all { display: inline-flex; align-items: center; gap: 7px; padding: 9px 12px; color: #0c7f84; font-size: .68rem; font-weight: 780; border: 1px solid #c9e4e4; border-radius: 10px; background: #f1fbfa; }.approved-requests__all:hover { color: #08686d; border-color: #a9d5d5; transform: translateY(-1px); }
.approved-request-list { overflow: hidden; border: 1px solid #dfe5ec; border-radius: 18px; background: rgba(255,255,255,.9); box-shadow: var(--shadow-sm); }
.approved-request { display: grid; grid-template-columns: 44px minmax(210px,1.25fr) minmax(180px,.9fr) auto 115px 16px; align-items: center; gap: 16px; min-height: 96px; padding: 17px 19px; color: var(--ink-800); border-bottom: 1px solid #e8edf2; transition: .2s ease; }.approved-request:last-child { border-bottom: 0; }.approved-request:hover { color: var(--ink-900); background: #f8fcfc; box-shadow: inset 3px 0 #0e9998; }
.approved-request__icon { width: 42px; height: 42px; display: grid; place-items: center; color: #0d8c8e; font-size: 1.05rem; border: 1px solid #cce7e6; border-radius: 12px; background: #edf9f8; }
.approved-request__main { min-width: 0; display: flex; flex-direction: column; }.approved-request__main > small { overflow: hidden; color: #118a8e; font-size: .56rem; font-weight: 830; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }.approved-request__main > strong { overflow: hidden; margin: 4px 0 2px; color: var(--ink-900); font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }.approved-request__main > span { overflow: hidden; color: #7d8999; font-size: .63rem; text-overflow: ellipsis; white-space: nowrap; }
.approved-request__products { min-width: 0; display: flex; flex-direction: column; gap: 4px; }.approved-request__products > small { display: flex; justify-content: space-between; gap: 10px; overflow: hidden; color: #697688; font-size: .61rem; text-overflow: ellipsis; white-space: nowrap; }.approved-request__products strong { color: #465568; font-size: .6rem; }
.approved-request__status { display: inline-flex; align-items: center; gap: 5px; justify-self: start; padding: 6px 9px; color: #11765f; font-size: .58rem; font-weight: 780; white-space: nowrap; border: 1px solid #c9e8dc; border-radius: 999px; background: #effaf5; }.approved-request__status--quote { color: #8b6411; border-color: #ebddb7; background: #fff9e9; }
.approved-request__date { display: flex; flex-direction: column; text-align: right; }.approved-request__date small { color: #9aa4b1; font-size: .54rem; }.approved-request__date strong { margin-top: 2px; color: #586678; font-size: .62rem; }.approved-request__arrow { color: #a2adba; font-size: .72rem; }
.approved-requests__empty { min-height: 125px; }
.portal-request-table-wrap { overflow: hidden; border: 1px solid #dfe5ec; border-radius: 18px; background: rgba(255,255,255,.94); box-shadow: var(--shadow-sm); }
.portal-request-table th { height: 45px; padding: 0 17px; color: #7c899a; background: #f5f8fb; }.portal-request-table td { height: 86px; padding: 13px 17px; vertical-align: middle; }.portal-request-table tbody tr { transition: .18s ease; }.portal-request-table tbody tr:hover { background: #f7fbfc; box-shadow: inset 3px 0 #118e92; }
.portal-request-table td:first-child { min-width: 210px; }.portal-request-table td:first-child code { margin-bottom: 4px; color: #0c8589; }.portal-request-table td:first-child strong { max-width: 290px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-request-products { min-width: 180px; display: flex; flex-direction: column; gap: 4px; }.portal-request-products > span { display: flex; justify-content: space-between; gap: 14px; color: #657386; font-size: .64rem; }.portal-request-products > span strong { color: #35485e; white-space: nowrap; }.portal-request-products > small { color: #15888b; font-size: .57rem; font-weight: 750; }
.purchase-mini-status.portal-status-quote { color: #8b6411; background: #fff3ce; }.portal-request-action { width: 54px; text-align: right; }.portal-request-action a { width: 33px; height: 33px; display: inline-grid; place-items: center; color: #0c7f84; border: 1px solid #c9e3e4; border-radius: 9px; background: #f0faf9; }.portal-request-action a:hover { color: #fff; border-color: #0e8c90; background: #0e8c90; transform: translateX(2px); }

/* Compact public portal */
.public-portal--compact { background: radial-gradient(circle at 50% -15%, rgba(31, 177, 179, .14), transparent 32rem), linear-gradient(155deg, #07111f 0%, #0b1d30 55%, #0b2533 100%); }
.public-portal--compact .public-header { border-bottom: 1px solid rgba(255,255,255,.07); }
.portal-overview { position: relative; z-index: 2; display: flex; align-items: flex-end; justify-content: space-between; gap: 35px; padding: 62px 28px 34px; }
.portal-overview h1 { margin: 10px 0 6px; color: #fff; font-size: clamp(2.4rem, 5vw, 4.6rem); font-weight: 730; letter-spacing: -.055em; }
.portal-overview p { margin: 0; color: #93a3b7; }
.portal-overview__status { min-width: 270px; display: flex; align-items: center; gap: 12px; padding: 14px 17px; border: 1px solid rgba(255,255,255,.1); border-radius: 15px; background: rgba(255,255,255,.055); }
.portal-overview__status > i { width: 40px; height: 40px; display: grid; place-items: center; color: #67ded7; border-radius: 11px; background: rgba(56,207,197,.1); }
.portal-overview__status span { display: flex; flex-direction: column; }.portal-overview__status strong { color: #e6edf5; font-size: .82rem; }.portal-overview__status small { color: #8292a7; font-size: .68rem; }
.public-portal--compact .module-showcase { padding-top: 28px; padding-bottom: 66px; border-top: 0; }
.section-heading--portal { align-items: center; margin-bottom: 22px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.08); }
.section-heading--portal h2 { font-size: 1.65rem; letter-spacing: -.025em; }
.portal-module-count { padding: 7px 11px; color: #aebac9; font-size: .7rem; border: 1px solid rgba(255,255,255,.11); border-radius: 999px; background: rgba(255,255,255,.04); }
.public-portal--compact .module-card { min-height: 286px; }
.public-portal--compact .module-card__content { margin-top: 28px; }
.public-portal--compact .public-announcements { padding-top: 20px; }
.public-portal--compact .section-heading--announcements { padding-top: 58px; }

/* Archive folder permissions */
.archive-workspace { min-height: 720px; padding: 4px 0 45px; }
.archive-hero { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; overflow: hidden; margin-bottom: 18px; padding: 27px 30px; color: #fff; border-radius: 21px; background: linear-gradient(120deg,#171b36 0%,#292657 60%,#4d347d 130%); box-shadow: 0 17px 42px rgba(29,28,64,.18); }
.archive-hero::after { content: ""; position: absolute; width: 230px; height: 230px; right: 14%; top: -170px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: 0 0 0 42px rgba(255,255,255,.025),0 0 0 84px rgba(255,255,255,.018); }
.archive-hero__icon { position: relative; z-index: 1; width: 55px; height: 55px; display: grid; place-items: center; color: #d7c7ff; font-size: 1.4rem; border: 1px solid rgba(220,205,255,.22); border-radius: 16px; background: rgba(255,255,255,.09); }
.archive-hero > div:nth-child(2) { position: relative; z-index: 1; }.archive-hero > div:nth-child(2) > span { color: #b9a7f0; font-size: .59rem; font-weight: 850; letter-spacing: .15em; }.archive-hero h1 { margin: 3px 0; color: #fff; font-size: 1.65rem; }.archive-hero p { margin: 0; color: #aaa9c5; font-size: .75rem; }
.archive-new-folder { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 8px; padding: 11px 15px; color: #2b2352; font-size: .75rem; font-weight: 780; border: 0; border-radius: 11px; background: #e7deff; }.archive-new-folder:hover { color: #1d173d; transform: translateY(-2px); background: #f2edff; }
.archive-message { color: #31555e; border-color: #cce4e6; background: #effafa; }
.archive-filterbar { display: grid; grid-template-columns: minmax(260px,1fr) 170px 170px auto; align-items: end; gap: 11px; margin-bottom: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.92); box-shadow: var(--shadow-sm); }
.archive-filterbar__search { height: 43px; display: flex; align-items: center; gap: 10px; padding: 0 13px; border: 1px solid #d9e0e9; border-radius: 10px; background: #fbfcfe; }.archive-filterbar__search:focus-within { border-color: #6754be; box-shadow: 0 0 0 4px rgba(104,82,223,.09); }.archive-filterbar__search i { color: #8d98aa; }.archive-filterbar__search input { width: 100%; border: 0; outline: 0; background: transparent; }
.archive-filterbar label { display: flex; flex-direction: column; gap: 4px; }.archive-filterbar label span { color: #748197; font-size: .61rem; font-weight: 760; }.archive-filterbar label input { height: 43px; padding: 0 10px; color: var(--ink-700); border: 1px solid #d9e0e9; border-radius: 10px; background: #fbfcfe; }.archive-filterbar > button { height: 43px; padding-inline: 18px; color: #fff; font-size: .73rem; font-weight: 750; border-radius: 10px; background: #5543a2; }.archive-filterbar > button:hover { color: #fff; background: #46358f; }
.archive-breadcrumb { min-height: 46px; display: flex; align-items: center; gap: 9px; overflow-x: auto; margin-bottom: 22px; padding: 7px 11px; color: #8793a5; font-size: .7rem; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.65); }.archive-breadcrumb > button { display: inline-flex; align-items: center; gap: 6px; flex: none; padding: 6px 8px; color: #536174; border: 0; border-radius: 7px; background: transparent; }.archive-breadcrumb > button:hover { color: #4d3d9f; background: #f0edfb; }.archive-breadcrumb > i { font-size: .52rem; }.archive-breadcrumb strong { color: #33276c; white-space: nowrap; }.archive-breadcrumb .archive-up { margin-left: auto; color: #5b4aab; background: #efecfa; }
.archive-section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 0 2px 14px; }.archive-section-title span { color: #6655b5; font-size: .58rem; font-weight: 850; letter-spacing: .14em; }.archive-section-title h2 { margin: 3px 0 0; font-size: 1.35rem; }.archive-section-title small { color: var(--ink-500); font-size: .69rem; }
.archive-folder-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.archive-folder-card { position: relative; min-height: 322px; display: flex; flex-direction: column; overflow: hidden; padding: 20px; border: 1px solid #e0e3eb; border-radius: 18px; background: rgba(255,255,255,.94); box-shadow: var(--shadow-sm); transition: .23s ease; }.archive-folder-card::before { content: ""; position: absolute; width: 130px; height: 130px; right: -75px; top: -80px; border-radius: 50%; background: #7964d3; opacity: .08; }.archive-folder-card:hover { transform: translateY(-4px); border-color: #cfc7ed; box-shadow: var(--shadow-md); }.archive-folder-card--current { border-color: #bcb0ea; box-shadow: inset 3px 0 #7762cc,var(--shadow-sm); }
.archive-folder-card__top { display: flex; align-items: center; justify-content: space-between; }.archive-folder-card__icon { width: 45px; height: 45px; display: grid; place-items: center; color: #6d58be; font-size: 1.3rem; border: 1px solid #ddd6f4; border-radius: 13px; background: #f3f0fc; }.archive-folder-card__date { color: #8a95a5; font-size: .62rem; }.archive-folder-card > small { margin-top: 18px; color: #7664bc; font-size: .56rem; font-weight: 850; letter-spacing: .09em; }.archive-folder-card h3 { margin: 4px 0 12px; overflow: hidden; color: var(--ink-900); font-size: 1.03rem; text-overflow: ellipsis; white-space: nowrap; }
.archive-folder-card__meta { display: flex; gap: 14px; color: #8490a2; font-size: .64rem; }.archive-folder-card__meta span { display: inline-flex; align-items: center; gap: 5px; }.archive-folder-card__actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 15px; }.archive-action { display: inline-flex; align-items: center; gap: 5px; padding: 7px 9px; color: #667387; font-size: .62rem; font-weight: 700; border: 1px solid #e0e4eb; border-radius: 8px; background: #f9fafc; }.archive-action:hover { color: #4d3a9d; border-color: #cfc6ef; background: #f2effc; }.archive-action--open { color: #fff; border-color: #6451b1; background: #6451b1; }.archive-action--open:hover { color: #fff; background: #51409d; }
.archive-permission-button { width: 100%; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; margin-top: auto; padding: 11px 12px; text-align: left; color: #554594; border: 1px solid #d9d1f1; border-radius: 11px; background: linear-gradient(100deg,#f5f2fd,#faf9fe); transition: .2s ease; }.archive-permission-button:hover { color: #3c2d7c; border-color: #bdb0e8; transform: translateY(-1px); }.archive-permission-button > i:first-child { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: #e6dff8; }.archive-permission-button span { display: flex; flex-direction: column; }.archive-permission-button strong { font-size: .69rem; }.archive-permission-button small { color: #9388b5; font-size: .57rem; }.archive-permission-button > i:last-child { font-size: .62rem; }
.archive-empty { min-height: 190px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; color: #8a96a8; text-align: center; border: 1px dashed #d7dce5; border-radius: 17px; background: rgba(255,255,255,.6); }.archive-empty > i { font-size: 2rem; }.archive-empty strong { color: #566477; }.archive-empty span { font-size: .7rem; }
.archive-permission-modal { border-radius: 22px; }
.archive-permission-note { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 16px; padding: 12px 14px; color: #526579; font-size: .76rem; line-height: 1.5; border: 1px solid #dbe7ec; border-radius: 12px; background: #f3fafb; }
.archive-permission-note i { color: #0e8e95; margin-top: 2px; }
.permission-avatar { width: 34px; height: 34px; display: grid; place-items: center; flex: none; color: #fff; font-size: .72rem; font-weight: 850; border-radius: 10px; background: linear-gradient(135deg, #0d7380, #1cb5ae); }

/* Near-due task post-its */
.task-reminders { margin: 42px 0 50px; padding-top: 30px; border-top: 1px solid #dde4ec; }
.task-postit-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 22px; padding: 7px 6px 15px; }
.task-postit { --note: #fff1a8; --note-edge: #ead36d; position: relative; min-height: 215px; display: flex; flex-direction: column; padding: 29px 22px 19px; color: #493f20; border: 1px solid var(--note-edge); border-radius: 3px 3px 15px 3px; background: linear-gradient(145deg, var(--note) 0%, #fff8cf 100%); box-shadow: 0 14px 22px rgba(53,55,65,.12), inset -10px -10px 22px rgba(135,105,26,.05); transform: rotate(-1deg); transition: .22s ease; }
.task-postit:nth-child(even) { transform: rotate(1.15deg); }.task-postit:nth-child(3n) { transform: rotate(-.45deg); }
.task-postit:hover { color: #342d18; transform: translateY(-6px) rotate(0); box-shadow: 0 22px 32px rgba(53,55,65,.18); }
.task-postit--urgent, .task-postit--overdue { --note: #ffd0c8; --note-edge: #eba69a; color: #5a2924; }.task-postit--soon { --note: #ffe3a5; --note-edge: #eac169; }.task-postit--planned { --note: #d8f2df; --note-edge: #a9d9b4; color: #254530; }
.task-postit__pin { position: absolute; top: -12px; left: 50%; color: #d14b55; font-size: 1.35rem; filter: drop-shadow(0 3px 2px rgba(60,30,25,.2)); transform: translateX(-50%) rotate(8deg); }
.task-postit > small { color: currentColor; font-size: .59rem; font-weight: 850; letter-spacing: .1em; opacity: .6; text-transform: uppercase; }
.task-postit h3 { margin: 10px 0 9px; color: currentColor; font-size: 1.03rem; line-height: 1.28; }
.task-postit p { display: -webkit-box; overflow: hidden; margin: 0; color: currentColor; font-size: .73rem; line-height: 1.55; opacity: .75; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.task-postit footer { display: flex; align-items: center; gap: 7px; margin-top: auto; padding-top: 15px; font-size: .65rem; border-top: 1px solid rgba(70,55,15,.13); }.task-postit footer i { opacity: .65; }.task-postit footer strong { font-size: .66rem; }.task-postit footer span { margin-left: auto; opacity: .65; }

.my-assets-workspace { min-height: 680px; padding: 4px 0 45px; }
.my-assets-hero { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; overflow: hidden; margin-bottom: 22px; padding: 30px; color: #fff; border-radius: 22px; background: linear-gradient(118deg,#0a2436 0%,#0c5662 70%,#16878a 130%); box-shadow: 0 18px 45px rgba(15,74,83,.2); }
.my-assets-hero::after { content: ""; position: absolute; width: 260px; height: 260px; right: 8%; top: -190px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; box-shadow: 0 0 0 48px rgba(255,255,255,.025),0 0 0 96px rgba(255,255,255,.018); }
.my-assets-hero__icon { position: relative; z-index: 1; width: 56px; height: 56px; display: grid; place-items: center; color: #a4f0e9; font-size: 1.45rem; border: 1px solid rgba(164,240,233,.25); border-radius: 16px; background: rgba(255,255,255,.09); }
.my-assets-hero > div { position: relative; z-index: 1; }.my-assets-hero > div small { color: #88ddd8; font-size: .59rem; font-weight: 850; letter-spacing: .14em; }.my-assets-hero h1 { margin: 4px 0; color: #fff; font-size: 1.7rem; }.my-assets-hero p { margin: 0; color: #a8c6ca; font-size: .76rem; }
.my-assets-hero__count { position: relative; z-index: 1; min-width: 105px; display: flex; flex-direction: column; align-items: center; padding: 12px 18px; border: 1px solid rgba(255,255,255,.13); border-radius: 14px; background: rgba(255,255,255,.07); }.my-assets-hero__count strong { color: #fff; font-size: 1.7rem; line-height: 1; }.my-assets-hero__count small { margin-top: 4px; color: #99c7ca; font-size: .61rem; }
.my-assets-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.my-asset-card { min-height: 320px; display: flex; flex-direction: column; padding: 21px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.94); box-shadow: var(--shadow-sm); transition: .22s ease; }.my-asset-card:hover { transform: translateY(-4px); border-color: #bcdedd; box-shadow: var(--shadow-md); }
.my-asset-card__top { display: flex; align-items: center; justify-content: space-between; }.my-asset-card__top > span { width: 43px; height: 43px; display: grid; place-items: center; color: #0c8589; font-size: 1.15rem; border: 1px solid #cce7e6; border-radius: 12px; background: #edf9f8; }.my-asset-card__top small { color: #12888b; font-size: .58rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.my-asset-card h2 { margin: 18px 0 12px; color: var(--ink-900); font-size: 1.08rem; }.my-asset-card__serial { display: flex; justify-content: space-between; gap: 12px; padding: 9px 11px; border-radius: 9px; background: #f3f6f9; }.my-asset-card__serial span { color: #8995a6; font-size: .62rem; }.my-asset-card__serial strong { overflow: hidden; color: #556376; font-family: monospace; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.my-asset-card dl { display: flex; flex-direction: column; gap: 9px; margin: 16px 0; }.my-asset-card dl > div { display: flex; justify-content: space-between; gap: 14px; }.my-asset-card dt { color: #8a96a7; font-size: .63rem; font-weight: 650; }.my-asset-card dt i { margin-right: 5px; color: #26a1a0; }.my-asset-card dd { max-width: 58%; margin: 0; overflow: hidden; color: #536174; font-size: .65rem; font-weight: 700; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.my-asset-card footer { margin-top: auto; padding-top: 13px; border-top: 1px solid #edf0f4; }.my-asset-card footer span { display: inline-flex; align-items: center; gap: 6px; color: #16846f; font-size: .64rem; font-weight: 750; }
.my-assets-empty { min-height: 260px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; color: #8a96a8; text-align: center; border: 1px dashed #d5dde5; border-radius: 19px; background: rgba(255,255,255,.65); }.my-assets-empty > i { font-size: 2.25rem; }.my-assets-empty strong { color: #566477; }.my-assets-empty span { font-size: .72rem; }

/* Error and not-found pages */
.main-layout { min-height: 100vh; }
.portal-status-page { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 35px 20px; text-align: center; background: radial-gradient(circle at 50% 5%, rgba(21,176,180,.12), transparent 28rem), linear-gradient(150deg,#07111f,#10233a); }
.portal-status-page__brand { width: 120px; height: 54px; display: grid; place-items: center; margin-bottom: 38px; padding: 10px 14px; border-radius: 15px; background: #fff; }.portal-status-page__brand img { width: 100%; height: 100%; object-fit: contain; }
.portal-status-page__icon { width: 76px; height: 76px; display: grid; place-items: center; margin-bottom: 24px; color: #ff879c; font-size: 2rem; border: 1px solid rgba(225,81,111,.4); border-radius: 22px; background: rgba(225,81,111,.12); }
.portal-status-page__number { margin-bottom: 12px; color: transparent; font-size: clamp(5rem,15vw,9rem); font-weight: 850; line-height: .9; letter-spacing: -.08em; background: linear-gradient(135deg,#65ddd6,#84aef3); background-clip: text; -webkit-background-clip: text; }
.portal-status-page h1 { margin: 13px 0 12px; color: #fff; font-size: clamp(2rem,5vw,3.6rem); }.portal-status-page p { max-width: 600px; color: #95a5b9; line-height: 1.7; }.portal-status-page code { margin: 6px 0 18px; padding: 7px 11px; color: #8fa4bc; border-radius: 8px; background: rgba(255,255,255,.06); }
.portal-status-page__action { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; padding: 12px 18px; color: #07242a; font-weight: 750; border: 0; border-radius: 12px; background: #69ddd6; }.portal-status-page__action:hover { color: #071821; transform: translateY(-2px); background: #86e7e1; }

.valid.modified:not([type=checkbox]) { outline: 1px solid #20a277; }.invalid { outline: 1px solid #d9435e; }.validation-message { color: #c93652; font-size: .75rem; }
.blazor-error-boundary { padding: 1rem; color: #fff; background: #a82b42; }.blazor-error-boundary::after { content: "Beklenmeyen bir hata oluştu."; }
#blazor-error-ui { display: none; position: fixed; z-index: 2000; bottom: 0; width: 100%; padding: .8rem 1.2rem; color: #fff; background: #9f263c; box-shadow: 0 -3px 15px rgba(0,0,0,.15); }

@keyframes portal-spin { to { transform: rotate(360deg); } }
@keyframes portal-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@keyframes portal-pulse { from { opacity: .35; transform: scale(.8); } to { opacity: 1; transform: scale(1.15); } }
@keyframes portal-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes portal-modal-in { from { opacity: 0; transform: translateY(18px) scale(.97); } to { opacity: 1; transform: none; } }

@media (max-width: 1199.98px) {
    .module-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .portal-topbar .navbar-collapse { padding-top: 13px; }.portal-topbar__nav { align-items: stretch; }.portal-user-menu { margin: 10px 0 2px; }.portal-user-chip { width: 100%; }
    .workspace-module-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }.workspace-news-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .task-postit-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .archive-folder-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.archive-filterbar { grid-template-columns: 1fr 150px 150px auto; }
    .my-assets-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 991.98px) {
    .portal-hero { grid-template-columns: 1fr; padding-top: 65px; text-align: center; }.portal-hero__copy { margin: auto; }.portal-hero__meta { justify-content: center; }.portal-hero__visual { min-height: 400px; }
    .announcement-grid { grid-template-columns: repeat(2, 1fr); }.module-sidebar { position: relative; top: auto; min-height: auto; margin-bottom: 18px; }.module-sidebar__footer { display: none; }
    .workspace-hero { padding: 35px; }.workspace-hero__date { display: none; }.workspace-module-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .task-postit-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .approved-request { grid-template-columns: 44px minmax(0,1fr) auto 16px; }.approved-request__products, .approved-request__date { display: none; }
    .archive-filterbar { grid-template-columns: 1fr 1fr; }.archive-filterbar__search { grid-column: 1/-1; }
}
@media (max-width: 767.98px) {
    .public-header { min-height: 82px; padding-inline: 18px; }.brand-lockup__copy { display: none; }.brand-lockup__mark { width: 94px; height: 46px; }.portal-login-button span { display: none; }
    .portal-hero { min-height: auto; padding: 65px 18px 50px; }.portal-hero h1 { font-size: clamp(2.75rem, 14vw, 4.4rem); }.portal-hero__visual { min-height: 330px; transform: scale(.8); margin: -30px 0; }
    .module-showcase, .public-announcements { padding: 58px 18px; }.section-heading { align-items: flex-start; flex-direction: column; }.module-grid { grid-template-columns: 1fr; }.module-card { min-height: 285px; }
    .announcement-grid { grid-template-columns: 1fr; }.public-footer { flex-direction: column; padding-inline: 18px; }.portal-app-content { padding: 10px 12px 25px; }.portal-topbar { top: 6px; }.portal-topbar__brand div { display: none; }.portal-topbar__brand { min-width: auto; }.portal-login-modal { padding: 27px 22px; }
    .workspace-hero { min-height: 220px; padding: 28px 24px; }.workspace-hero h1 { font-size: 2rem; }.workspace-module-grid, .workspace-news-grid { grid-template-columns: 1fr; }.workspace-section__heading { align-items: flex-start; flex-direction: column; gap: 5px; }
    .portal-overview { align-items: flex-start; flex-direction: column; padding: 42px 18px 20px; }.portal-overview__status { width: 100%; min-width: 0; }.public-portal--compact .module-showcase { padding-top: 20px; }.task-postit-grid { grid-template-columns: 1fr; }
    .approved-request { grid-template-columns: 38px minmax(0,1fr) 14px; gap: 11px; padding: 15px 13px; }.approved-request__icon { width: 38px; height: 38px; }.approved-request__status { grid-column: 2; justify-self: start; }.approved-request__arrow { grid-column: 3; grid-row: 1; }.approved-requests__all { align-self: flex-start; }
    .portal-request-table-wrap { overflow: visible; border: 0; background: transparent; box-shadow: none; }.portal-request-table thead { display: none; }.portal-request-table,.portal-request-table tbody,.portal-request-table tr,.portal-request-table td { display: block; width: 100%; }.portal-request-table tbody { display: grid; gap: 12px; }.portal-request-table tr { overflow: hidden; padding: 7px 14px; border: 1px solid #dfe5ec; border-radius: 15px; background: rgba(255,255,255,.94); box-shadow: var(--shadow-sm); }.portal-request-table td { height: auto; display: grid; grid-template-columns: 105px minmax(0,1fr); gap: 10px; padding: 9px 0; text-align: left; border-top: 1px solid #edf1f4; }.portal-request-table td:first-child { min-width: 0; border-top: 0; }.portal-request-table td::before { content: attr(data-label); color: #8995a5; font-size: .56rem; font-weight: 780; letter-spacing: .05em; text-transform: uppercase; }.portal-request-table td > strong,.portal-request-table td > small,.portal-request-table td > code,.portal-request-table td > div,.portal-request-table td > span { grid-column: 2; }.portal-request-table td:first-child code { grid-column: 2; }.portal-request-table .portal-request-action { display: none; }.portal-request-products { min-width: 0; }
    .archive-hero { grid-template-columns: auto 1fr; padding: 22px 18px; }.archive-new-folder { grid-column: 1/-1; justify-content: center; }.archive-filterbar,.archive-folder-grid { grid-template-columns: 1fr; }.archive-filterbar__search { grid-column: auto; }.archive-breadcrumb span { display: none; }.archive-folder-card { min-height: 305px; }
    .my-assets-hero { grid-template-columns: auto 1fr; padding: 23px 18px; }.my-assets-hero__count { grid-column: 1/-1; width: 100%; }.my-assets-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

/* Procurement module */
.accent-blue{--accent:#3f78db;--accent-soft:#e8f0ff}.sidebar-purchase{--side-accent:#5c8ff0}.module-workspace-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;align-items:start}.purchase-workspace{min-width:0;padding-bottom:45px}
.purchase-hero{position:relative;min-height:225px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px;overflow:hidden;margin-bottom:18px;padding:36px;color:#fff;border-radius:23px;background:linear-gradient(118deg,#091d38 0%,#153f70 62%,#327cbb 125%);box-shadow:0 20px 45px rgba(20,52,92,.2)}.purchase-hero::before{content:"";position:absolute;width:340px;height:340px;right:4%;top:-245px;border:1px solid rgba(255,255,255,.14);border-radius:50%;box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.018)}.purchase-hero>div,.purchase-hero>button{position:relative;z-index:1}.purchase-hero>div>span,.purchase-page-heading>div>span,.purchase-panel>header>div>span{color:#79b3ff;font-size:.59rem;font-weight:850;letter-spacing:.15em}.purchase-hero h1{max-width:680px;margin:6px 0 7px;color:#fff;font-size:clamp(1.8rem,3.5vw,2.65rem);letter-spacing:-.035em}.purchase-hero p{max-width:690px;margin:0;color:#b6c9df;font-size:.78rem;line-height:1.65}
.purchase-primary-action,.purchase-secondary-action,.purchase-approve-action,.purchase-reject-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:41px;padding:10px 15px;font-size:.7rem;font-weight:780;border:0;border-radius:10px;transition:.2s ease}.purchase-primary-action{color:#fff;background:#3478d8;box-shadow:0 10px 22px rgba(37,103,195,.2)}.purchase-primary-action:hover{color:#fff;transform:translateY(-2px);background:#2969c5}.purchase-primary-action:disabled{opacity:.55;transform:none}.purchase-secondary-action{color:#59677a;border:1px solid #dce2ea;background:#f5f7fa}.purchase-approve-action{color:#fff;background:#13886f}.purchase-reject-action{color:#b5344d;border:1px solid #f0cad2;background:#fff1f4}
.purchase-alert{display:flex;align-items:center;gap:9px;margin-bottom:15px;padding:12px 14px;color:#176a5a;font-size:.73rem;border:1px solid #bde3d9;border-radius:11px;background:#effaf7}.purchase-alert--error{color:#a42c44;border-color:#efc4cd;background:#fff0f3}.purchase-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.purchase-stat-grid article{display:flex;align-items:center;gap:12px;min-height:95px;padding:17px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.92);box-shadow:var(--shadow-sm)}.purchase-stat__icon{width:43px;height:43px;display:grid;place-items:center;flex:none;font-size:1.05rem;border-radius:12px}.tone-blue{color:#2d6dcc;background:#e9f1ff}.tone-amber{color:#a96e10;background:#fff3d7}.tone-violet{color:#7654b5;background:#f0eafb}.tone-green{color:#148369;background:#e3f6ef}.purchase-stat-grid article div{display:flex;flex-direction:column}.purchase-stat-grid small{color:#8995a5;font-size:.61rem;font-weight:720}.purchase-stat-grid strong{color:#1c2d43;font-size:1.55rem;line-height:1.1}
.purchase-panel{overflow:hidden;margin-bottom:18px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.94);box-shadow:var(--shadow-sm)}.purchase-panel>header{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;border-bottom:1px solid #edf0f4}.purchase-panel>header>div{display:flex;flex-direction:column}.purchase-panel>header>div>span{color:#5681c3}.purchase-panel>header h2{margin:3px 0 0;font-size:1.14rem}.purchase-panel>header>small{color:#8793a4;font-size:.67rem}.purchase-request-card{border-bottom:1px solid #edf0f4}.purchase-request-card:last-child{border-bottom:0}.purchase-request-card__main{width:100%;display:grid;grid-template-columns:115px minmax(0,1fr) auto 18px;align-items:center;gap:15px;padding:17px 19px;text-align:left;border:0;background:transparent}.purchase-request-card__main:hover{background:#f7faff}.purchase-request-card__number{color:#376cb7;font-family:monospace;font-size:.68rem;font-weight:780}.purchase-request-card__copy{display:flex;flex-direction:column;min-width:0}.purchase-request-card__copy strong{overflow:hidden;color:#25364b;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.purchase-request-card__copy small{margin-top:3px;color:#929dac;font-size:.61rem}.purchase-request-card__main>i{color:#a5afbd;font-size:.7rem}
.purchase-approved-panel{border-color:#d7e4f3;box-shadow:0 10px 28px rgba(27,67,111,.08)}.purchase-approved-panel>header{background:linear-gradient(100deg,#f7fbff,#f3f8fe)}.purchase-panel__header-actions{display:flex!important;align-items:center;flex-direction:row!important;gap:12px}.purchase-panel__header-actions>small{color:#8793a4;font-size:.67rem}.purchase-panel__header-actions>a{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;color:#2d65ad;font-size:.65rem;font-weight:760;border:1px solid #ccdcf0;border-radius:9px;background:#fff}.purchase-panel__header-actions>a:hover{color:#204f8c;border-color:#abc4e2;transform:translateY(-1px)}.purchase-request-card--approved .purchase-request-card__main{grid-template-columns:115px minmax(0,1fr) 115px auto 18px}.purchase-approved-need{display:flex;flex-direction:column;text-align:right}.purchase-approved-need small{color:#98a3b1;font-size:.55rem}.purchase-approved-need strong{margin-top:2px;color:#526175;font-size:.62rem}
.purchase-status{display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;font-size:.58rem;font-weight:800;border-radius:20px;white-space:nowrap}.status-amber{color:#8b630e;background:#fff1c9}.status-red{color:#a52d45;background:#ffe5eb}.status-violet{color:#6747a6;background:#efe8fb}.status-blue{color:#2d62a7;background:#e6f0ff}.status-green{color:#14745e;background:#dcf4ec}.status-gray{color:#677386;background:#edf0f4}.purchase-empty{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;color:#8b97a7}.purchase-empty>i{font-size:2rem;color:#6f93c8}.purchase-empty strong{color:#4f5f73}.purchase-empty span{font-size:.68rem}.purchase-empty button{margin-top:9px;padding:8px 12px;color:#376db8;font-size:.67rem;font-weight:750;border:1px solid #cedcf1;border-radius:9px;background:#eff5ff}.purchase-empty--page{min-height:390px;border:1px dashed #d5dce6;border-radius:18px;background:rgba(255,255,255,.63)}
.purchase-page-heading{min-height:150px;display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:18px;padding:27px 30px;border:1px solid #dfe6ef;border-radius:20px;background:linear-gradient(125deg,rgba(255,255,255,.95),rgba(240,246,254,.92));box-shadow:var(--shadow-sm)}.purchase-page-heading h1{margin:4px 0;color:#1c2d43;font-size:1.75rem}.purchase-page-heading p{margin:0;color:#7c899b;font-size:.73rem}.purchase-heading-count{padding:9px 13px;color:#946719;font-size:.65rem;font-weight:780;border-radius:20px;background:#fff1cf}
.purchase-modal-backdrop{position:fixed;z-index:1150;inset:0;display:grid;place-items:center;padding:20px;background:rgba(5,15,30,.68);backdrop-filter:blur(8px);animation:portal-fade .18s ease both}.purchase-modal{width:min(100%,620px);max-height:calc(100vh - 40px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.7);border-radius:21px;background:#fff;box-shadow:0 30px 80px rgba(7,23,45,.28);animation:portal-modal-in .22s ease both}.purchase-modal--wide{width:min(100%,940px)}.purchase-modal--xwide{width:min(100%,1640px)}.purchase-modal>header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 21px;border-bottom:1px solid #e8edf3;background:#f9fbfd}.purchase-modal>header>div{display:flex;flex-direction:column}.purchase-modal>header small{color:#527dbb;font-size:.57rem;font-weight:850;letter-spacing:.13em}.purchase-modal>header h2{margin:3px 0 0;font-size:1.12rem}.purchase-modal>header>button{width:34px;height:34px;color:#718095;border:0;border-radius:9px;background:#edf1f5}.purchase-modal__body{overflow-y:auto;padding:21px}.purchase-modal>footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:14px 20px;border-top:1px solid #e8edf3;background:#f9fbfd}
.purchase-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.purchase-form-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}.purchase-form-grid label,.purchase-modal-field,.purchase-form-line label{display:flex;flex-direction:column;gap:5px;min-width:0}.purchase-form-grid label>span,.purchase-modal-field>span,.purchase-form-line label>span{color:#6f7d90;font-size:.6rem;font-weight:760}.purchase-form-grid input,.purchase-form-grid select,.purchase-form-grid textarea,.purchase-modal-field input,.purchase-modal-field select,.purchase-modal-field textarea,.purchase-form-line input,.purchase-form-line select{width:100%;min-height:41px;padding:9px 10px;color:#2f4055;font-size:.72rem;border:1px solid #d8e0e9;border-radius:9px;outline:0;background:#fbfcfe}.purchase-form-grid input:focus,.purchase-form-grid select:focus,.purchase-form-grid textarea:focus,.purchase-modal-field input:focus,.purchase-modal-field select:focus,.purchase-modal-field textarea:focus,.purchase-form-line input:focus,.purchase-form-line select:focus{border-color:#78a4e4;box-shadow:0 0 0 3px rgba(70,125,208,.09)}.purchase-form-grid textarea,.purchase-modal-field textarea{resize:vertical}.purchase-form-grid .span-2{grid-column:span 2}.purchase-check{flex-direction:row!important;align-items:center;margin-top:9px;padding:10px 12px;border:1px solid #e0e5ec;border-radius:9px;background:#f8fafc}.purchase-check input{width:16px!important;min-height:auto!important}.purchase-check span{color:#44556a!important}
.purchase-line-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:22px 0 10px;padding-top:18px;border-top:1px solid #e9edf2}.purchase-line-heading>div{display:flex;flex-direction:column}.purchase-line-heading strong{font-size:.8rem}.purchase-line-heading small{color:#8b97a7;font-size:.6rem}.purchase-line-heading>button{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;color:#376db7;font-size:.62rem;font-weight:750;border:1px solid #cad9ef;border-radius:8px;background:#eff5ff}.purchase-form-lines{display:flex;flex-direction:column;gap:8px}.purchase-form-line{display:grid;grid-template-columns:28px minmax(220px,1fr) 120px minmax(220px,1fr) 34px;align-items:end;gap:8px;padding:11px;border:1px solid #e2e7ee;border-radius:11px;background:#f8fafc}.purchase-form-line--quote{grid-template-columns:28px 1.25fr 1fr 95px 110px 85px 85px 34px}.purchase-form-line--order{grid-template-columns:28px minmax(310px,1.65fr) minmax(285px,1.45fr) minmax(180px,.9fr) 85px 105px 75px 75px 34px}.purchase-form-line__index{width:25px;height:25px;display:grid;place-items:center;align-self:center;color:#4775b5;font-size:.6rem;font-weight:850;border-radius:7px;background:#e6effb}.purchase-line-remove{width:34px;height:41px;color:#b3485c;border:1px solid #efd2d9;border-radius:8px;background:#fff1f4}.purchase-line-remove:disabled{opacity:.35}
.purchase-detail-meta{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-bottom:14px}.purchase-detail-meta>span:not(.purchase-status){display:inline-flex;align-items:center;gap:6px;color:#778598;font-size:.65rem}.purchase-detail-description{padding:13px;color:#5f6f83;font-size:.72rem;line-height:1.6;border-radius:10px;background:#f5f7fa}.purchase-detail-lines{overflow:hidden;border:1px solid #e3e8ef;border-radius:11px}.purchase-detail-lines>div{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 14px;border-bottom:1px solid #e9edf2}.purchase-line-product{display:flex;align-items:center;gap:9px}.purchase-line-product>i{color:#4e7fc2}.purchase-line-product>small{color:#8c97a6;font-size:.6rem}.purchase-detail-lines>div>strong{font-size:.69rem}.purchase-timeline{margin-top:20px}.purchase-timeline h3{font-size:.8rem}.purchase-timeline>div{display:grid;grid-template-columns:13px 1fr;gap:9px;padding:7px 0}.purchase-timeline>div>span{width:8px;height:8px;margin-top:5px;border:2px solid #6d97d2;border-radius:50%;background:#fff}.purchase-timeline p{display:flex;flex-direction:column;margin:0}.purchase-timeline p strong{font-size:.67rem}.purchase-timeline p small{color:#8d98a8;font-size:.58rem}.purchase-timeline p em{margin-top:3px;color:#637186;font-size:.61rem;font-style:normal}
.approval-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.approval-card{display:flex;flex-direction:column;min-height:390px;padding:19px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.94);box-shadow:var(--shadow-sm)}.approval-card>header{display:flex;justify-content:space-between;color:#8c98a8;font-size:.6rem}.approval-card>header>span{color:#4473b4;font-family:monospace;font-weight:750}.approval-card__requester{display:flex;align-items:center;gap:9px;margin:16px 0}.approval-card__requester>span,.manager-list article>span{width:36px;height:36px;display:grid;place-items:center;color:#fff;font-size:.63rem;font-weight:850;border-radius:10px;background:linear-gradient(135deg,#3568ac,#56a0d5)}.approval-card__requester>div{display:flex;flex-direction:column}.approval-card__requester strong{font-size:.72rem}.approval-card__requester small{color:#909bab;font-size:.59rem}.approval-card h2{margin:0 0 6px;font-size:1rem}.approval-card>p{min-height:38px;color:#748195;font-size:.67rem;line-height:1.5}.approval-card__lines{overflow:hidden;border:1px solid #e7ebf0;border-radius:10px}.approval-card__lines>div{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;font-size:.63rem;border-bottom:1px solid #edf0f4}.approval-card__need{margin-top:12px;color:#788699;font-size:.63rem}.approval-card>footer{display:flex;justify-content:flex-end;gap:8px;margin-top:auto;padding-top:15px;border-top:1px solid #edf0f4}
.purchase-tabs{display:flex;gap:5px;overflow-x:auto;margin-bottom:14px;padding:6px;border:1px solid #dde4ed;border-radius:13px;background:rgba(255,255,255,.83)}.purchase-tabs button{display:inline-flex;align-items:center;gap:7px;flex:none;padding:9px 12px;color:#6c7a8e;font-size:.66rem;font-weight:720;border:0;border-radius:9px;background:transparent}.purchase-tabs button span{padding:2px 6px;font-size:.54rem;border-radius:12px;background:#edf0f4}.purchase-tabs button.active{color:#285f9f;background:#e9f2ff}.purchase-tabs button.active span{background:#d4e6ff}
.purchase-table-wrap{overflow-x:auto}.purchase-table{width:100%;border-collapse:collapse}.purchase-table th{padding:11px 14px;color:#8a96a7;font-size:.56rem;letter-spacing:.08em;text-align:left;background:#f7f9fb}.purchase-table td{padding:12px 14px;color:#5d6b7e;font-size:.66rem;border-top:1px solid #edf0f4}.purchase-table td>strong,.purchase-table td>small{display:block}.purchase-table td>strong{color:#34465b}.purchase-table td>small{margin-top:2px;color:#98a2b0;font-size:.57rem}.purchase-table code{color:#376caf;font-size:.64rem}.purchase-icon-action{width:34px;height:34px;color:#4775b3;border:1px solid #d4e0f0;border-radius:8px;background:#f0f5fc}.purchase-mini-status{display:inline-flex;padding:5px 8px;font-size:.55rem;font-weight:780;border-radius:14px}.purchase-mini-status.active{color:#13705b;background:#dff4ed}.purchase-mini-status.passive{color:#7d8795;background:#edf0f3}
.definition-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}.definition-card{display:grid;grid-template-columns:47px minmax(0,1fr) auto 34px;align-items:center;gap:10px;padding:12px;border:1px solid #e3e8ef;border-radius:12px;background:#fbfcfd}.definition-card__code{width:43px;height:43px;display:grid;place-items:center;color:#3e6daa;font-size:.65rem;font-weight:850;border-radius:10px;background:#e8f1fd}.definition-card>div{display:flex;flex-direction:column}.definition-card>div strong{font-size:.7rem}.definition-card>div small{color:#919cac;font-size:.58rem}.definition-card>button,.supplier-card header button,.manager-list article button{width:32px;height:32px;color:#64758a;border:1px solid #e0e5eb;border-radius:8px;background:#fff}.supplier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px}.supplier-card{display:flex;flex-direction:column;min-height:245px;padding:16px;border:1px solid #e1e7ee;border-radius:14px;background:#fbfcfd}.supplier-card header{display:flex;justify-content:space-between}.supplier-card header>span{width:40px;height:40px;display:grid;place-items:center;color:#4876b3;border-radius:11px;background:#e9f1fc}.supplier-card h3{margin:16px 0 3px;font-size:.85rem}.supplier-card>p{color:#8b97a7;font-size:.61rem}.supplier-card dl{display:flex;flex-direction:column;gap:6px;margin:8px 0}.supplier-card dl>div{display:flex;justify-content:space-between;gap:10px}.supplier-card dt{color:#949ead;font-size:.57rem}.supplier-card dd{max-width:65%;overflow:hidden;margin:0;color:#5d6b7d;font-size:.59rem;text-overflow:ellipsis;white-space:nowrap}.supplier-card footer{margin-top:auto;padding-top:10px;border-top:1px solid #edf0f3}
.purchase-definition-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.compact-definition-list{display:flex;flex-direction:column;padding:7px}.compact-definition-list>button{display:grid;grid-template-columns:55px minmax(0,1fr) auto 20px;align-items:center;gap:9px;padding:10px;text-align:left;border:0;border-bottom:1px solid #edf0f3;background:transparent}.compact-definition-list>button>span{color:#3f6fac;font-size:.63rem;font-weight:850}.compact-definition-list>button>strong{font-size:.68rem}.compact-definition-list>button>small{color:#919cab;font-size:.58rem}.compact-definition-list>button>i{color:#8794a5;font-size:.65rem}.manager-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:14px}.manager-list article{display:grid;grid-template-columns:36px minmax(0,1fr) 32px;align-items:center;gap:9px;padding:10px;border:1px solid #e3e8ee;border-radius:11px;background:#fbfcfd}.manager-list article>div{display:flex;flex-direction:column}.manager-list article strong{font-size:.68rem}.manager-list article small{color:#909baa;font-size:.58rem}.manager-list article button{color:#b4475b}
.purchase-filter-strip{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px;padding:11px;border:1px solid #dfe5ed;border-radius:13px;background:rgba(255,255,255,.87)}.purchase-filter-strip label{min-width:300px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #dce3eb;border-radius:9px;background:#fbfcfd}.purchase-filter-strip label i{color:#8f9baa}.purchase-filter-strip input{width:100%;height:38px;border:0;outline:0;background:transparent;font-size:.68rem}.purchase-filter-strip>span{color:#8491a2;font-size:.62rem}.quote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.quote-card,.order-card{overflow:hidden;border:1px solid #dde4ed;border-radius:17px;background:rgba(255,255,255,.95);box-shadow:var(--shadow-sm)}.quote-card>header,.order-card>header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #edf0f4}.quote-card>header>div,.order-card>header>div{display:flex;align-items:center;gap:10px}.quote-card__company,.order-card__icon{width:39px;height:39px;display:grid;place-items:center;color:#4272b2;border-radius:10px;background:#e9f1fc}.quote-card>header>div>span:last-child,.order-card>header>div>span:last-child{display:flex;flex-direction:column}.quote-card>header small,.order-card>header small{color:#8996a8;font-size:.55rem}.quote-card>header strong,.order-card>header strong{font-size:.73rem}.quote-card__currency{padding:6px 8px;color:#315f9d;font-size:.6rem;font-weight:850;border-radius:8px;background:#e8f1fd}.quote-card__meta,.order-card__meta{display:flex;gap:15px;padding:10px 16px;color:#8b97a8;font-size:.59rem;background:#fafbfd}.quote-card__meta span,.order-card__meta span{display:flex;align-items:center;gap:5px}.quote-card__lines,.order-card__lines{padding:6px 14px}.quote-card__lines>div,.order-card__lines>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 2px;border-bottom:1px solid #edf0f4}.quote-card__lines>div>span,.order-card__lines>div>span{display:flex;flex-direction:column}.quote-card__lines strong,.order-card__lines strong{font-size:.66rem}.quote-card__lines small,.order-card__lines small{color:#929dad;font-size:.56rem}.quote-price{align-items:flex-end!important}.quote-price button{margin-top:4px;padding:3px 7px;color:#17775f;font-size:.6rem;border:1px solid #cce8df;border-radius:6px;background:#edf9f5}.quote-card>footer,.order-card>footer{display:flex;align-items:center;gap:8px;padding:11px 16px;color:#8592a4;font-size:.58rem;border-top:1px solid #e9edf2;background:#f9fafc}.quote-card>footer strong,.order-card>footer>strong{margin-left:auto;color:#244b7e;font-size:.72rem}.selection-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:14px}.selection-summary span{display:flex;flex-direction:column;padding:11px;color:#8995a6;font-size:.58rem;border-radius:9px;background:#f4f7fa}.selection-summary strong{margin-top:3px;color:#405166;font-size:.68rem}.order-list{display:flex;flex-direction:column;gap:13px}.order-card--cancelled{opacity:.72}.order-card__lines>div>span:last-child{align-items:flex-end}.order-card>footer{gap:14px}.order-card>footer>button{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;color:#af4054;font-size:.57rem;border:1px solid #efd0d7;border-radius:7px;background:#fff0f3}
.quote-card__actions{display:flex;gap:6px}.quote-card__actions button{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;font-size:.57rem;font-weight:730;border-radius:7px}.quote-edit-action{color:#946814;border:1px solid #ead9a9;background:#fff8df}.quote-edit-action:hover{color:#76500b;border-color:#dfc47c;background:#ffefbd}.quote-delete-action{color:#ad3f52;border:1px solid #edccd3;background:#fff0f3}.quote-delete-action:hover{color:#8d293c;border-color:#ddaab5;background:#ffe0e7}.purchase-delete-warning{display:flex;align-items:flex-start;gap:13px;padding:16px;color:#8f3345;border:1px solid #efccd4;border-radius:12px;background:#fff3f5}.purchase-delete-warning>i{font-size:1.25rem}.purchase-delete-warning>div{display:flex;flex-direction:column;gap:4px}.purchase-delete-warning strong{font-size:.78rem}.purchase-delete-warning span{color:#8b6570;font-size:.66rem;line-height:1.5}
@media(max-width:1199.98px){.purchase-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-form-grid--four{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-form-line--quote,.purchase-form-line--order{grid-template-columns:28px repeat(3,minmax(130px,1fr)) 34px;overflow-x:auto}.supplier-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:991.98px){.module-workspace-grid{grid-template-columns:1fr}.approval-grid,.quote-grid{grid-template-columns:1fr}}
@media(max-width:767.98px){.purchase-hero{align-items:flex-start;flex-direction:column;padding:25px 20px}.purchase-page-heading{align-items:flex-start;flex-direction:column;padding:22px 19px}.purchase-stat-grid,.purchase-form-grid,.purchase-form-grid--four,.definition-card-grid,.supplier-grid,.purchase-definition-columns,.manager-list{grid-template-columns:1fr}.purchase-form-grid .span-2{grid-column:auto}.purchase-request-card__main,.purchase-request-card--approved .purchase-request-card__main{grid-template-columns:1fr auto}.purchase-request-card__copy{grid-column:1}.purchase-request-card__main>.purchase-status{grid-column:2;grid-row:1/3}.purchase-request-card__main>i,.purchase-approved-need{display:none}.purchase-panel>header{align-items:flex-start;flex-direction:column}.purchase-panel__header-actions{width:100%;justify-content:space-between}.purchase-form-line,.purchase-form-line--quote,.purchase-form-line--order{grid-template-columns:28px minmax(190px,1fr) 34px}.purchase-form-line label{grid-column:2}.purchase-form-line__index{grid-row:1}.purchase-line-remove{grid-column:3;grid-row:1}.purchase-filter-strip{align-items:stretch;flex-direction:column}.purchase-filter-strip label{min-width:0}.purchase-modal-backdrop{padding:8px}.purchase-modal{max-height:calc(100vh - 16px);border-radius:16px}.selection-summary{grid-template-columns:1fr}.order-card>footer{flex-wrap:wrap}.order-card>footer>strong{margin-left:0}}
.quote-match-action{display:inline-flex;align-items:center;gap:5px;border:1px solid #b9d9d5;background:#eef9f7;color:#16877e;border-radius:8px;padding:6px 9px;font-size:11px;font-weight:700;white-space:nowrap}.quote-match-action:hover{background:#dcf3ef}.quote-match-info{display:flex!important;align-items:center;gap:4px;color:#16877e!important;font-weight:700;margin-top:5px}.purchase-flow-note{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #c8ddf5;border-radius:10px;background:#f3f8fe;color:#47647f;font-size:12px;line-height:1.45}.purchase-flow-note i{color:#387fd1;font-size:15px;margin-top:1px}
.purchase-history-filter{display:grid;grid-template-columns:minmax(240px,1fr) 150px 150px auto auto auto;align-items:end;gap:10px;margin-bottom:14px;padding:14px;border:1px solid #dfe7f0;border-radius:14px;background:#fff;box-shadow:0 10px 30px rgba(15,39,68,.05)}.purchase-history-filter label{display:flex;flex-direction:column;gap:5px;color:#6c7b8e;font-size:.62rem;font-weight:750}.purchase-history-filter label>div{position:relative}.purchase-history-filter label>div i{position:absolute;left:12px;top:50%;color:#8291a5;transform:translateY(-50%)}.purchase-history-filter input{width:100%;height:40px;padding:8px 11px;border:1px solid #d8e1eb;border-radius:9px;background:#fbfcfe;color:#2e4057;font-size:.72rem}.purchase-history-filter label>div input{padding-left:34px}.purchase-grid-panel{overflow:hidden;border:1px solid #dfe7f0;border-radius:15px;background:#fff;box-shadow:0 14px 35px rgba(15,39,68,.06)}.purchase-quick-grid{width:100%;border-collapse:collapse}.purchase-quick-grid thead{background:#f4f7fb}.purchase-quick-grid th{padding:13px 14px;color:#6b7a8e;font-size:.61rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid #e2e8f0}.purchase-quick-grid td{padding:14px;color:#34465c;font-size:.72rem;border-bottom:1px solid #edf1f5}.purchase-quick-grid tbody tr:hover{background:#f8fbff}.purchase-review-action{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;color:#25776f;font-size:.65rem;font-weight:750;border:1px solid #b9dcd7;border-radius:8px;background:#eef9f7}.purchase-grid-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 15px;color:#7c899a;font-size:.65rem;background:#f8fafc}.purchase-grid-footer .paginator{display:flex;align-items:center;gap:5px}.purchase-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:17px}.purchase-detail-summary>span{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #e1e7ef;border-radius:10px;background:#f8fafc}.purchase-detail-summary small{color:#7c8999;font-size:.61rem}.purchase-detail-summary strong{color:#24374e;font-size:.75rem}.purchase-detail-table{overflow:auto;border:1px solid #e0e7ef;border-radius:11px}.purchase-detail-table table{width:100%;border-collapse:collapse}.purchase-detail-table th{padding:11px;color:#6b7a8d;font-size:.6rem;text-align:left;background:#f4f7fa}.purchase-detail-table td{padding:12px;color:#35475d;font-size:.7rem;border-top:1px solid #e7ecf2}.purchase-detail-table tfoot td{background:#f5f8fb;text-align:right}
@media(max-width:1199.98px){.purchase-history-filter{grid-template-columns:1fr 1fr 1fr}.purchase-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.purchase-history-filter{grid-template-columns:1fr}.purchase-detail-summary{grid-template-columns:1fr}.purchase-grid-panel{overflow-x:auto}.purchase-quick-grid{min-width:900px}}
.purchase-grid-panel{align-self:start;background:rgba(255,255,255,.96);box-shadow:0 18px 45px rgba(27,55,88,.08)}.purchase-quick-grid.quickgrid{height:auto!important;min-height:0!important;table-layout:fixed}.purchase-quick-grid.quickgrid>thead>tr>th{height:48px;padding:0 16px!important;color:#718096!important;background:#f6f8fb;border-bottom:1px solid #dde5ee;font-size:.58rem!important;font-weight:850!important;letter-spacing:.08em;text-transform:uppercase;vertical-align:middle}.purchase-quick-grid.quickgrid .col-header-content{height:100%;padding:0!important}.purchase-quick-grid.quickgrid .col-title,.purchase-quick-grid.quickgrid button.col-title{height:100%;display:flex;align-items:center;gap:7px;padding:0!important;color:inherit!important;font:inherit!important;letter-spacing:inherit;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;text-transform:inherit}.purchase-quick-grid.quickgrid button.col-title:hover{color:#16888d!important;background:transparent!important}.purchase-quick-grid.quickgrid .sort-indicator{width:12px;height:12px;opacity:.35}.purchase-quick-grid.quickgrid>tbody>tr{height:60px;background:#fff;transition:background .16s ease,box-shadow .16s ease}.purchase-quick-grid.quickgrid>tbody>tr:hover{background:#f6fbfc;box-shadow:inset 3px 0 #169399}.purchase-quick-grid.quickgrid>tbody>tr>td{height:60px;padding:0 16px!important;color:#46586d;font-size:.7rem!important;vertical-align:middle;border-bottom:1px solid #e9eef4}.purchase-quick-grid.quickgrid>tbody>tr>td:first-child{color:#245d83;font-weight:800}.purchase-quick-grid.quickgrid>tbody>tr:has(td.grid-cell-placeholder){display:none}.purchase-quick-grid.quickgrid td.grid-cell-placeholder{display:none}.purchase-review-action{padding:8px 13px;color:#147b78;border-color:#b7ddd9;border-radius:9px;background:#eff9f7;box-shadow:0 3px 9px rgba(22,139,135,.07)}.purchase-review-action:hover{color:#fff;border-color:#168b87;background:#168b87;transform:translateY(-1px)}.purchase-grid-footer{min-height:54px;padding:9px 16px;border-top:0;background:#f8fafc}.purchase-grid-footer>span{display:inline-flex;align-items:center;gap:6px}.purchase-grid-footer>span:before{content:'\f3fd';font-family:'bootstrap-icons';color:#168b90;font-size:.8rem}.purchase-grid-footer .paginator{width:auto;margin:0!important;padding:0!important;border:0!important;color:#68788c}.purchase-grid-footer .paginator nav{gap:4px}.purchase-grid-footer .paginator button{width:31px!important;height:31px!important;border:1px solid #d9e2ec!important;border-radius:8px!important;background-color:#fff!important;background-size:12px!important}.purchase-grid-footer .paginator button:not(:disabled):hover{border-color:#91c9c6!important;background-color:#eaf7f5!important}.purchase-grid-footer .pagination-text{margin:0 8px!important;color:#718095;font-size:.64rem}.purchase-mini-status.active{padding:6px 10px;color:#187362;background:#e2f4ee}.purchase-history-filter{border-color:#dce5ee;background:rgba(255,255,255,.96);box-shadow:0 13px 35px rgba(27,55,88,.06)}
.purchase-grid-toolbar{display:flex;align-items:center;justify-content:flex-start;min-height:51px;padding:9px 15px;border-bottom:1px solid #e3e9f0;background:#fff}.purchase-grid-toolbar label{display:flex;align-items:center;gap:8px;color:#778698;font-size:.64rem;font-weight:700}.purchase-grid-toolbar select{height:32px;min-width:82px;padding:4px 28px 4px 10px;color:#315067;font-size:.68rem;font-weight:750;border:1px solid #d4dfe9;border-radius:8px;outline:0;background:#f7fafc}.purchase-grid-toolbar select:focus{border-color:#78b8b5;box-shadow:0 0 0 3px rgba(22,139,135,.08)}
.purchase-excel-action{display:inline-flex;align-items:center;gap:7px;margin-left:auto;padding:8px 12px;color:#247553;font-size:.66rem;font-weight:800;text-decoration:none;border:1px solid #b9dccb;border-radius:9px;background:#edf8f2;box-shadow:0 3px 10px rgba(38,132,91,.06);transition:.16s ease}.purchase-excel-action i{font-size:.85rem}.purchase-excel-action:hover{color:#fff;text-decoration:none;border-color:#27845d;background:#27845d;transform:translateY(-1px)}
.purchase-delivery-action{display:grid;grid-template-columns:minmax(0,1fr) 220px auto;gap:18px;align-items:end;margin-top:22px;padding:20px;border:1px solid #c9d9f2;border-radius:16px;background:linear-gradient(135deg,#f7faff,#eef5ff)}
.purchase-delivery-action>div>span{display:block;color:#557fc5;font-size:10px;font-weight:800;letter-spacing:.16em;margin-bottom:5px}.purchase-delivery-action h3{margin:0 0 5px;font-size:16px}.purchase-delivery-action p{margin:0;color:#718096;font-size:12px}.purchase-delivery-action label{display:grid;gap:7px;color:#64748b;font-size:11px;font-weight:700}.purchase-delivery-action label input{height:42px;border:1px solid #ced9ea;border-radius:9px;padding:0 11px;background:#fff;color:#1e293b}
@media(max-width:900px){.purchase-delivery-action{grid-template-columns:1fr}.purchase-delivery-action .purchase-primary-action{width:100%;justify-content:center}}
