/* Shared visual theme for the console, login and public download pages. */
.parse-log-link { min-width: 230px; max-width: 360px; white-space: normal; overflow-wrap: anywhere; }
.parse-log-name { min-width: 170px; max-width: 320px; white-space: normal; overflow-wrap: anywhere; }
:root {
  --blue: #16856b;
  --muted: #748079;
  --border: #e5eae6;
  --ink: #24362e;
  --accent-soft: #edf6f0;
  font-family: "Inter", "Segoe UI Variable", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  color: var(--ink);
  background: #f5f7f5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body { background: #f5f7f5; }
::selection { background: #d8ebdf; color: #183b2b; }
button {
  min-height: 38px;
  border-color: #dfe6e1;
  border-radius: 8px;
  color: #53645a;
  padding: 9px 15px;
  font-weight: 500;
  transition: background .16s, border-color .16s, box-shadow .16s;
}
button:hover { background: #f3f7f4; border-color: #cbd9d0; }
button:focus-visible, a:focus-visible { outline: 3px solid #b9dfcd; outline-offset: 3px; }
button.primary, .enterprise-download .redeem-card .primary { background: #16856b; border-color: #16856b; box-shadow: 0 2px 4px #1c644b12; }
button.primary:hover, .enterprise-download .redeem-card .primary:hover { background: #116c57; border-color: #116c57; }
button:disabled { opacity: .42; box-shadow: none; }
button.link { min-height: 32px; border-radius: 6px; font-size: 12px; }
button.link:hover { background: #edf6f0; }
button.danger, button.link.danger { color: #b85b56; }
button.danger:hover { background: #fcf1ef; border-color: #edcfca; }
input, textarea, select { border-color: #dfe6e1; border-radius: 8px; padding: 11px 13px; color: #344b3e; background: #fff; transition: border-color .16s, box-shadow .16s; }
input:focus, textarea:focus, select:focus, .enterprise-download textarea:focus, .enterprise-download input:focus { outline: none; border-color: #70af95; box-shadow: 0 0 0 3px #16856b12; }
input::placeholder, textarea::placeholder { color: #98a29b; }
input[type=checkbox] { accent-color: #16856b; width: 15px; height: 15px; cursor: pointer; }
label { color: #526359; font-size: 13px; font-weight: 500; }
.hint, .sub { color: #7b877f; line-height: 1.8; }
.hint { font-size: 12px; }
.sub { font-size: 11px; margin-top: 6px; }
.eyebrow { font-size: 10px; letter-spacing: 2px; color: #819187; font-weight: 600; }
.brand { font-size: 17px; letter-spacing: .1px; color: #253c30; }
.brand-icon { width: 39px; height: 39px; border-radius: 11px; background: #16856b; box-shadow: 0 4px 10px #16856b15; flex: 0 0 auto; }
.brand-icon svg { width: 25px; height: 25px; }
.brand small { color: #85968a; font-size: 8px; letter-spacing: 1.6px; margin-top: 5px; }
.ui-icon { display: block; width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.6; fill: none; stroke-linecap: round; stroke-linejoin: round; }

/* Quiet navigation and a clear working area. */
.sidebar { width: 228px; padding: 30px 18px 20px; background: #fdfefd; color: #607368; border-right: 1px solid #e3e9e3; }
.sidebar .brand { padding: 0 8px; }
.workspace { margin: 32px 4px 29px; padding: 14px 12px; border: 1px solid #e4ece5; border-radius: 10px; background: #f7f9f6; color: #435a4c; font-size: 12px; }
.workspace small { font-size: 10px; color: #849389; }
.workspace>span:last-child { color: #a1b0a5; }
.workspace i, .connection i, .live-dot { background: #429b75; }
.nav-caption { color: #9aa79e; letter-spacing: 1px; font-size: 10px; padding-left: 16px; }
.sidebar nav button, .sidebar nav>a { min-height: 45px; padding: 12px 15px; gap: 13px; border-radius: 9px; color: #75847a; margin-bottom: 6px; font-size: 13px; font-weight: 500; }
.sidebar nav button:hover, .sidebar nav>a:hover { color: #2a6147; background: #f1f6f0; }
.sidebar nav button.active { color: #16856b; background: #eaf4ed; box-shadow: none; }
.sidebar nav button.active::after { content: ""; width: 5px; height: 5px; border-radius: 50%; background: #16856b; margin-left: auto; }
.sidebar nav button span, .sidebar nav>a span { width: 20px; flex: 0 0 20px; }
.sidebar-bottom { padding: 20px 8px 2px; }
.connection { color: #87978c; border-bottom-color: #e7ece7; font-size: 10px; padding-bottom: 21px; }
.admin-avatar, .top-avatar { color: #437258; background: #edf4ec; border: 1px solid #e2eade; font-weight: 600; }
.admin-meta { color: #4d6355; font-size: 12px; }
.admin-meta small { color: #96a298; }
.logout { color: #96a298; min-height: 32px; }
.logout .ui-icon { width: 18px; height: 18px; }
.main-wrap { width: calc(100% - 228px); margin-left: 228px; min-width: 0; }
.topbar { height: 73px; padding: 0 38px; background: #ffffffa6; border-bottom: 1px solid #e5ebe5; color: #909d93; }
.topbar strong { color: #536b59; font-weight: 500; }
.topbar b { color: #c2ccc3; }
.topbar>div { font-size: 11px; color: #839288; }
.top-avatar { width: 30px; height: 30px; margin-left: 13px; }
.shell main { padding: 35px 38px 20px; max-width: 1760px; }
.page-heading { margin-bottom: 30px; }
.page-heading h1 { font-size: 28px; font-weight: 650; letter-spacing: -.7px; color: #233c2e; }
.page-heading p:last-child { color: #849287; font-size: 12px; margin-top: 12px; line-height: 1.8; }
.heading-actions { gap: 10px; }
.heading-actions button { min-height: 40px; padding: 10px 17px; font-size: 12px; }
.stats { gap: 18px; margin-bottom: 26px; }
.stats article { padding: 20px 22px; border-color: #e4eae3; border-radius: 13px; box-shadow: 0 3px 10px #1e3d2903; }
.stats article>div { font-size: 12px; color: #7d8d80; }
.stat-icon { width: 32px; height: 32px; border-radius: 9px; }
.stat-icon .ui-icon { width: 18px; height: 18px; }
.stat-icon.blue { color: #538b73; background: #edf4ef; }
.stat-icon.purple { color: #8c8a70; background: #f4f3eb; }
.stat-icon.green { color: #538b73; background: #edf4ef; }
.stat-icon.orange { color: #af9364; background: #f8f3e9; }
.stats strong { color: #293f31; font-size: 32px; font-weight: 600; letter-spacing: -1px; font-variant-numeric: tabular-nums; margin: 10px 0; }
.stats small { color: #8b978c; font-size: 11px; }
.stats small b { color: #63826c; }

/* Tables use fine rules and aligned, readable controls. */
.panel { border: 1px solid #e1e8e0; border-radius: 14px; box-shadow: 0 4px 18px #253b2b03; }
.panel-title { padding: 24px 25px 20px; }
.panel-title h2 { color: #344f3d; font-size: 14px; font-weight: 600; }
.panel-title h2 span { color: #7b8f7e; background: #f0f4ed; border-radius: 5px; padding: 3px 8px; font-size: 10px; }
.panel-note { color: #96a294; font-size: 10px; }
.filters { padding: 0 25px 23px; gap: 10px; }
.search-wrap { width: 310px; }
.search-wrap span { color: #9aaa9a; top: 7px; font-size: 22px; }
.filters input, .filters select { background: #fbfcfa; min-height: 39px; font-size: 12px; }
.filters button { font-size: 12px; }
.file-manager-toolbar { flex-wrap: wrap; gap: 10px; font-size: 12px; color: #8a978b; }
.accounts-toolbar { padding: 0 25px; }
.file-manager-toolbar button { font-size: 12px; min-height: 35px; padding: 8px 13px; }
.file-manager-toolbar button.danger { border-color: #efded9; background: #fefaf8; }
.table-wrap { scrollbar-width: thin; scrollbar-color: #d3dfd1 #f9fbf7; }
table { font-size: 12px; }
th { background: #f7f9f5; color: #83927e; font-size: 11px; border-color: #e9eee5; padding: 14px 17px; }
td { border-bottom-color: #edf1e8; color: #60765f; padding: 20px 17px; line-height: 1.6; }
tr:last-child td { border-bottom: 0; }
tr:hover td { background: #fcfdfa; }
.cell-title { color: #40583f; font-weight: 600; }
.mono { font-family: "Cascadia Code", Consolas, monospace; font-size: 11px; letter-spacing: -.15px; }
.account-ico { background: #eef5e9; color: #648b59; border-radius: 9px; }
.tag { border-radius: 5px; font-size: 10px; font-weight: 500; background: #eff4eb; color: #7a9072; padding: 4px 8px; }
.tag.success { background: #edf5e9; color: #5b8b44; }
.tag.warning { background: #fbf5e7; color: #ab8a44; }
.tag.danger { background: #fbeee9; color: #b87057; }
.tag.muted { background: #f2f4ed; color: #87917c; }
.pagination { padding: 19px 25px; border-top: 1px solid #edf1e8; color: #8f9c88; font-size: 11px; }
.pagination button { min-height: 30px; background: #fbfcf8; padding: 5px 11px; border-color: #e2e9dc; }
.page-footer { color: #a2ad9a; padding: 22px 1px; font-size: 10px; }
.empty { padding: 55px 24px 62px; }
.empty-icon { background: #f1f6eb; color: #91ae7f; border-radius: 16px; }
.empty h3 { color: #59704f; font-weight: 600; }
.empty p { color: #91a083; }
.settings-content { padding: 0 25px 28px; }
.settings-content h3 { color: #435d38; margin-top: 25px; }
.settings-content p, .settings-content ol { color: #7e9170; }
.settings-content code { border-color: #e2eada; background: #f8faf3; color: #617b4d; }
.settings-line>span:first-child { color: #8a9a7b; }

/* Forms and overlays share the same spacing and materials. */
dialog { border-color: #e1e9da; border-radius: 16px; box-shadow: 0 28px 90px #20351e26; color: #43583c; max-height: 90dvh; }
dialog::backdrop { background: #1c2c2347; backdrop-filter: blur(5px); }
.modal-head { padding: 22px 26px; background: #fcfdf9; border-bottom-color: #e9eee3; }
.modal-head h2 { font-size: 17px; font-weight: 600; letter-spacing: -.2px; color: #344d2a; }
.modal-head button { width: 30px; min-height: 30px; padding: 0; color: #98a68a; }
#modal-body { padding: 5px 26px 26px; }
.modal-footer { margin-top: 26px; padding-top: 20px; border-top: 1px solid #edf1e7; gap: 10px; }
.modal-footer button { min-height: 38px; padding: 9px 18px; font-size: 12px; }
.account-details dt { color: #8e9e7e; }
.account-alert { color: #9c8750; background: #fbf7ea; border: 1px solid #eee7d1; border-radius: 9px; }
.file-manager-dialog { width: min(960px, 95vw); }
.file-manager-list { border: 1px solid #e8eee0; border-radius: 10px; }
.file-manager-list th { background: #f7faf1; }
.toast { background: #294d36; border: 1px solid #ffffff20; border-radius: 11px; font-size: 12px; box-shadow: 0 10px 35px #28432d20; }
.toast.error { background: #9d6252; }

/* A restrained login composition. */
.login-page { background: #fbfcf8; grid-template-columns: 1.05fr 1fr; }
.login-intro { background: #193b2e; overflow: hidden; padding: 68px max(7vw, 35px); }
.login-intro::after { content: ""; position: absolute; width: 530px; height: 530px; right: -270px; bottom: -180px; border: 1px solid #8bb7972b; border-radius: 50%; box-shadow: 0 0 0 64px #8bb79708, 0 0 0 128px #8bb79706; pointer-events: none; }
.login-intro>* { position: relative; z-index: 1; }
.login-intro .brand-icon { background: #ffffff0c; border: 1px solid #ffffff25; box-shadow: none; width: 48px; height: 48px; margin-bottom: 55px; }
.login-intro h1 { font-size: clamp(32px, 3.2vw, 49px); font-weight: 500; line-height: 1.65; letter-spacing: 1px; }
.login-intro .eyebrow { color: #85ae92; }
.login-intro>p:last-of-type { color: #9eba9f; font-size: 13px; }
.login-intro .intro-footer { position: absolute; color: #7fa084; }
.login-card { width: 360px; max-width: 85%; padding: 36px 0; }
.login-card h2 { color: #2c482e; font-size: 27px; font-weight: 600; letter-spacing: -.5px; }
.login-card>p { color: #91a083; line-height: 1.9; }
.login-card input { background: #fff; min-height: 45px; }
.login-card .primary { min-height: 45px; border-radius: 8px; }
.login-card .hint { font-size: 11px; color: #96a58a; }
.login-card .hint code { color: #728a60; }
.login-card>a { display: inline-flex; align-items: center; gap: 7px; }
.login-card>a .ui-icon { width: 14px; height: 14px; }

/* Public pages carry the same identity as the console. */
.redeem-page, .enterprise-download { background: #f5f8f3; color: #2b442d; }
.redeem-header, .enterprise-download .redeem-header { background: #ffffffdb; border-bottom: 1px solid #e3ebe0; padding: 21px max(5vw, 24px); }
.redeem-header .brand { color: #314b31; font-size: 16px; }
.redeem-header .brand small { color: #8ba17e; }
.redeem-header>a:not(.brand) { color: #829773; }
.redeem-main { padding: 45px 24px 28px; }
.redeem-main>.eyebrow { color: #91a47f; font-size: 10px; }
.redeem-main>h1 { color: #2c472b; font-size: 32px; font-weight: 600; letter-spacing: -.7px; margin: 15px 0; }
.redeem-main>p { color: #849a74; font-size: 12px; line-height: 1.9; }
.redeem-card, .enterprise-download .redeem-card { padding: 28px 34px 30px; margin-top: 29px; border-radius: 16px; border-color: #e1e9d9; box-shadow: 0 8px 35px #304a2705; }
.redeem-card label { margin-top: 20px; color: #4f6941; }
.redeem-card>label:first-child { margin-top: 4px; }
.redeem-card input { min-height: 42px; font-size: 13px; }
.redeem-card .primary { padding: 12px 16px; min-height: 43px; font-size: 13px; }
.redeem-card .hint { font-size: 11px; color: #899e79; }
.enterprise-download textarea[name=link] { background: #fdfefa; font-size: 14px; border-color: #dfe8d7; }
.enterprise-download #files .batch-actions { background: #f5f8f0; border-color: #e4ebdc; border-radius: 10px; padding: 13px; }
.enterprise-download #files .batch-action { background: #16856b; border-color: #16856b; border-radius: 8px; }
.enterprise-download #files .share-file-row { border-color: #edf1e6; padding: 13px 0; }
.enterprise-download #files .share-file-row>button { font-size: 12px; }
.enterprise-download #files .file-list-title { font-size: 11px; color: #8ca17a; }
.enterprise-download #result { font-size: 12px; color: #5a7449; line-height: 1.9; }
.enterprise-download #quota { padding-bottom: 15px; border-bottom: 1px solid #edf1e6; line-height: 1.9; }
.enterprise-download #batch-progress { padding: 10px 13px; border: 1px solid #e4edda; border-radius: 8px; background: #f7faf2; color: #63834c; }
.enterprise-download #download-link { font-size: 12px; }
.ticket-symbol { border-radius: 11px; background: #edf5e5; color: #7a9c60; }
.redeem-result.success { color: #658845; background: #f0f7e8; }
.redeem-result.warning { color: #a58d48; background: #fcf7e7; }

@media (min-width: 1600px) {
  .shell main { padding: 42px 46px 22px; }
  .topbar { padding: 0 46px; }
  .stats article { padding: 23px 25px; }
}
@media (max-width: 1150px) and (min-width: 801px) {
  .sidebar { width: 204px; padding: 27px 12px 18px; }
  .main-wrap { width: calc(100% - 204px); margin-left: 204px; }
  .shell main { padding: 28px 25px 20px; }
  .topbar { padding: 0 25px; }
  .stats { gap: 12px; }
  .stats article { padding: 17px; }
  .stats strong { font-size: 28px; }
}
@media (max-width: 800px) {
  .sidebar { width: 66px; padding: 22px 8px; }
  .sidebar .brand { padding: 0; }
  .sidebar nav button, .sidebar nav>a { font-size: 0; padding: 13px 0; gap: 0; min-height: 46px; justify-content: center; }
  .sidebar nav button.active::after { display: none; }
  .main-wrap { width: calc(100% - 66px); margin-left: 66px; }
  .topbar { height: 60px; padding: 0 19px; font-size: 11px; }
  .topbar>div { font-size: 0; gap: 0; }
  .topbar .live-dot { display: none; }
  .top-avatar { font-size: 11px; margin-left: 0; }
  .shell main { padding: 25px 18px 15px; }
  .page-heading { gap: 19px; margin-bottom: 23px; }
  .page-heading h1 { font-size: 25px; }
  .heading-actions { flex-wrap: wrap; }
  .heading-actions button { font-size: 11px; padding: 9px 12px; }
  .stats { gap: 11px; margin-bottom: 22px; }
  .stats article { padding: 15px 14px; border-radius: 11px; }
  .stats article>div { font-size: 11px; }
  .stats strong { font-size: 26px; }
  .stat-icon { width: 25px; height: 25px; border-radius: 7px; }
  .stat-icon .ui-icon { width: 16px; height: 16px; }
  .stats small { font-size: 10px; line-height: 1.7; }
  .panel-title { padding: 20px 17px; }
  .filters { padding: 0 17px 19px; }
  .filters select { flex: 1; }
  .filters input, .filters select { font-size: 12px; }
  .file-manager-toolbar { padding-left: 17px !important; padding-right: 17px !important; }
  .file-manager-dialog .file-manager-toolbar { padding-left: 0 !important; padding-right: 0 !important; }
  .settings-content { padding-left: 17px; padding-right: 17px; }
  .panel-note { display: none; }
  .pagination { padding: 17px; }
  .empty { padding: 40px 17px; }
  .login-page { grid-template-columns: 1fr; background: #f7faf3; }
  .login-intro { display: none; }
  .login-card { background: #fff; border: 1px solid #e5ecdc; border-radius: 16px; padding: 30px 25px; width: 390px; max-width: calc(100vw - 36px); box-shadow: 0 12px 40px #304a2705; }
  .login-card h2 { font-size: 24px; }
  .redeem-header, .enterprise-download .redeem-header { padding: 19px 22px; }
  .redeem-main, .enterprise-download .redeem-main { padding: 32px 18px 24px; }
  .redeem-main>h1 { font-size: 27px; line-height: 1.5; }
  .redeem-card, .enterprise-download .redeem-card { padding: 25px; margin-top: 25px; }
  .enterprise-download textarea[name=link] { font-size: 16px; }
  .modal-head { padding: 19px 21px; }
  .modal-head h2 { font-size: 16px; }
  #modal-body { padding: 4px 21px 23px; }
}
@media (max-width: 480px) {
  .enterprise-download #files .batch-actions { padding: 12px; }
  .enterprise-download #files .batch-actions label { width: 100%; }
  .enterprise-download #files .batch-action { flex: 1; }
  .stats article { padding: 13px 11px; }
  .stats strong { font-size: 23px; }
  .stats article>div { gap: 5px; }
  .page-footer { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }

.generated-card-links { min-height:260px; max-height:45vh; font-family:Consolas,monospace; font-size:12px; line-height:1.9; overflow-wrap:anywhere; }
.generated-links-actions { flex-wrap:wrap; }
