@charset "UTF-8";

/* src/styles.scss */
@font-face {
  font-family: "primeicons";
  font-display: block;
  src: url("./media/primeicons.eot");
  src:
    url("./media/primeicons.eot?#iefix") format("embedded-opentype"),
    url("./media/primeicons.woff2") format("woff2"),
    url("./media/primeicons.woff") format("woff"),
    url("./media/primeicons.ttf") format("truetype"),
    url("./media/primeicons.svg?#primeicons") format("svg");
  font-weight: normal;
  font-style: normal;
}
.pi {
  font-family: "primeicons";
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  display: inline-block;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.pi:before {
  --webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.pi-fw {
  width: 1.28571429em;
  text-align: center;
}
.pi-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}
@media (prefers-reduced-motion: reduce) {
  .pi-spin {
    -webkit-animation-delay: -1ms;
    animation-delay: -1ms;
    -webkit-animation-duration: 1ms;
    animation-duration: 1ms;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
  }
}
@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.pi-eye-dropper:before {
  content: "\ea3c";
}
.pi-code-branch:before {
  content: "\ea3a";
}
.pi-signature:before {
  content: "\ea3b";
}
.pi-stamp:before {
  content: "\ea3d";
}
.pi-rectangle-xmark:before {
  content: "\ea3e";
}
.pi-note-sticky:before {
  content: "\ea3f";
}
.pi-sidebar:before {
  content: "\ea40";
}
.pi-slash:before {
  content: "\ea41";
}
.pi-grid-2:before {
  content: "\ea42";
}
.pi-columns-2:before {
  content: "\ea43";
}
.pi-rows-2:before {
  content: "\ea44";
}
.pi-square:before {
  content: "\ea45";
}
.pi-compress:before {
  content: "\ea46";
}
.pi-pen-line:before {
  content: "\ea47";
}
.pi-case-sensitive:before {
  content: "\ea48";
}
.pi-text-color:before {
  content: "\ea49";
}
.pi-list-tree:before {
  content: "\ea4a";
}
.pi-highlighter:before {
  content: "\ea4b";
}
.pi-text:before {
  content: "\ea4c";
}
.pi-heading-6:before {
  content: "\ea4d";
}
.pi-heading-5:before {
  content: "\ea4e";
}
.pi-heading-4:before {
  content: "\ea4f";
}
.pi-heading-3:before {
  content: "\ea50";
}
.pi-heading-2:before {
  content: "\ea51";
}
.pi-heading-1:before {
  content: "\ea52";
}
.pi-heading:before {
  content: "\ea53";
}
.pi-grip:before {
  content: "\ea54";
}
.pi-grip-horizontal:before {
  content: "\ea55";
}
.pi-grip-vertical:before {
  content: "\ea56";
}
.pi-paragraph-right:before {
  content: "\ea57";
}
.pi-paragraph-left:before {
  content: "\ea58";
}
.pi-arrow-u-turn-up-left:before {
  content: "\ea59";
}
.pi-arrow-u-turn-up-right:before {
  content: "\ea5a";
}
.pi-horizontal-rule:before {
  content: "\ea5b";
}
.pi-outdent:before {
  content: "\ea5c";
}
.pi-indent:before {
  content: "\ea5d";
}
.pi-list-ol:before {
  content: "\ea5e";
}
.pi-block-quote:before {
  content: "\ea5f";
}
.pi-superscript:before {
  content: "\ea60";
}
.pi-subscript:before {
  content: "\ea61";
}
.pi-strikethrough:before {
  content: "\ea62";
}
.pi-underline:before {
  content: "\ea63";
}
.pi-italic:before {
  content: "\ea64";
}
.pi-bold:before {
  content: "\ea65";
}
.pi-dot:before {
  content: "\ea66";
}
.pi-folder-plus:before {
  content: "\ea05";
}
.pi-receipt:before {
  content: "\ea06";
}
.pi-asterisk:before {
  content: "\ea07";
}
.pi-face-smile:before {
  content: "\ea08";
}
.pi-pinterest:before {
  content: "\ea09";
}
.pi-expand:before {
  content: "\ea0a";
}
.pi-pen-to-square:before {
  content: "\ea0b";
}
.pi-wave-pulse:before {
  content: "\ea0c";
}
.pi-turkish-lira:before {
  content: "\ea0d";
}
.pi-spinner-dotted:before {
  content: "\ea0e";
}
.pi-crown:before {
  content: "\ea0f";
}
.pi-pause-circle:before {
  content: "\ea10";
}
.pi-warehouse:before {
  content: "\ea11";
}
.pi-objects-column:before {
  content: "\ea12";
}
.pi-clipboard:before {
  content: "\ea13";
}
.pi-play-circle:before {
  content: "\ea14";
}
.pi-venus:before {
  content: "\ea15";
}
.pi-cart-minus:before {
  content: "\ea16";
}
.pi-file-plus:before {
  content: "\ea17";
}
.pi-microchip:before {
  content: "\ea18";
}
.pi-twitch:before {
  content: "\ea19";
}
.pi-building-columns:before {
  content: "\ea1a";
}
.pi-file-check:before {
  content: "\ea1b";
}
.pi-microchip-ai:before {
  content: "\ea1c";
}
.pi-trophy:before {
  content: "\ea1d";
}
.pi-barcode:before {
  content: "\ea1e";
}
.pi-file-arrow-up:before {
  content: "\ea1f";
}
.pi-mars:before {
  content: "\ea20";
}
.pi-tiktok:before {
  content: "\ea21";
}
.pi-arrow-up-right-and-arrow-down-left-from-center:before {
  content: "\ea22";
}
.pi-ethereum:before {
  content: "\ea23";
}
.pi-list-check:before {
  content: "\ea24";
}
.pi-thumbtack:before {
  content: "\ea25";
}
.pi-arrow-down-left-and-arrow-up-right-to-center:before {
  content: "\ea26";
}
.pi-equals:before {
  content: "\ea27";
}
.pi-lightbulb:before {
  content: "\ea28";
}
.pi-star-half:before {
  content: "\ea29";
}
.pi-address-book:before {
  content: "\ea2a";
}
.pi-chart-scatter:before {
  content: "\ea2b";
}
.pi-indian-rupee:before {
  content: "\ea2c";
}
.pi-star-half-fill:before {
  content: "\ea2d";
}
.pi-cart-arrow-down:before {
  content: "\ea2e";
}
.pi-calendar-clock:before {
  content: "\ea2f";
}
.pi-sort-up-fill:before {
  content: "\ea30";
}
.pi-sparkles:before {
  content: "\ea31";
}
.pi-bullseye:before {
  content: "\ea32";
}
.pi-sort-down-fill:before {
  content: "\ea33";
}
.pi-graduation-cap:before {
  content: "\ea34";
}
.pi-hammer:before {
  content: "\ea35";
}
.pi-bell-slash:before {
  content: "\ea36";
}
.pi-gauge:before {
  content: "\ea37";
}
.pi-shop:before {
  content: "\ea38";
}
.pi-headphones:before {
  content: "\ea39";
}
.pi-eraser:before {
  content: "\ea04";
}
.pi-stopwatch:before {
  content: "\ea01";
}
.pi-verified:before {
  content: "\ea02";
}
.pi-delete-left:before {
  content: "\ea03";
}
.pi-hourglass:before {
  content: "\e9fe";
}
.pi-truck:before {
  content: "\ea00";
}
.pi-wrench:before {
  content: "\e9ff";
}
.pi-microphone:before {
  content: "\e9fa";
}
.pi-megaphone:before {
  content: "\e9fb";
}
.pi-arrow-right-arrow-left:before {
  content: "\e9fc";
}
.pi-bitcoin:before {
  content: "\e9fd";
}
.pi-file-edit:before {
  content: "\e9f6";
}
.pi-language:before {
  content: "\e9f7";
}
.pi-file-export:before {
  content: "\e9f8";
}
.pi-file-import:before {
  content: "\e9f9";
}
.pi-file-word:before {
  content: "\e9f1";
}
.pi-gift:before {
  content: "\e9f2";
}
.pi-cart-plus:before {
  content: "\e9f3";
}
.pi-thumbs-down-fill:before {
  content: "\e9f4";
}
.pi-thumbs-up-fill:before {
  content: "\e9f5";
}
.pi-arrows-alt:before {
  content: "\e9f0";
}
.pi-calculator:before {
  content: "\e9ef";
}
.pi-sort-alt-slash:before {
  content: "\e9ee";
}
.pi-arrows-h:before {
  content: "\e9ec";
}
.pi-arrows-v:before {
  content: "\e9ed";
}
.pi-pound:before {
  content: "\e9eb";
}
.pi-prime:before {
  content: "\e9ea";
}
.pi-chart-pie:before {
  content: "\e9e9";
}
.pi-reddit:before {
  content: "\e9e8";
}
.pi-code:before {
  content: "\e9e7";
}
.pi-sync:before {
  content: "\e9e6";
}
.pi-shopping-bag:before {
  content: "\e9e5";
}
.pi-server:before {
  content: "\e9e4";
}
.pi-database:before {
  content: "\e9e3";
}
.pi-hashtag:before {
  content: "\e9e2";
}
.pi-bookmark-fill:before {
  content: "\e9df";
}
.pi-filter-fill:before {
  content: "\e9e0";
}
.pi-heart-fill:before {
  content: "\e9e1";
}
.pi-flag-fill:before {
  content: "\e9de";
}
.pi-circle:before {
  content: "\e9dc";
}
.pi-circle-fill:before {
  content: "\e9dd";
}
.pi-bolt:before {
  content: "\e9db";
}
.pi-history:before {
  content: "\e9da";
}
.pi-box:before {
  content: "\e9d9";
}
.pi-at:before {
  content: "\e9d8";
}
.pi-arrow-up-right:before {
  content: "\e9d4";
}
.pi-arrow-up-left:before {
  content: "\e9d5";
}
.pi-arrow-down-left:before {
  content: "\e9d6";
}
.pi-arrow-down-right:before {
  content: "\e9d7";
}
.pi-telegram:before {
  content: "\e9d3";
}
.pi-stop-circle:before {
  content: "\e9d2";
}
.pi-stop:before {
  content: "\e9d1";
}
.pi-whatsapp:before {
  content: "\e9d0";
}
.pi-building:before {
  content: "\e9cf";
}
.pi-qrcode:before {
  content: "\e9ce";
}
.pi-car:before {
  content: "\e9cd";
}
.pi-instagram:before {
  content: "\e9cc";
}
.pi-linkedin:before {
  content: "\e9cb";
}
.pi-send:before {
  content: "\e9ca";
}
.pi-slack:before {
  content: "\e9c9";
}
.pi-moon:before {
  content: "\e9c7";
}
.pi-sun:before {
  content: "\e9c8";
}
.pi-youtube:before {
  content: "\e9c5";
}
.pi-vimeo:before {
  content: "\e9c6";
}
.pi-flag:before {
  content: "\e9c4";
}
.pi-wallet:before {
  content: "\e9c3";
}
.pi-map:before {
  content: "\e9c2";
}
.pi-link:before {
  content: "\e9c1";
}
.pi-credit-card:before {
  content: "\e9bf";
}
.pi-discord:before {
  content: "\e9c0";
}
.pi-percentage:before {
  content: "\e9be";
}
.pi-euro:before {
  content: "\e9bd";
}
.pi-book:before {
  content: "\e9ba";
}
.pi-shield:before {
  content: "\e9b9";
}
.pi-paypal:before {
  content: "\e9bb";
}
.pi-amazon:before {
  content: "\e9bc";
}
.pi-phone:before {
  content: "\e9b8";
}
.pi-filter-slash:before {
  content: "\e9b7";
}
.pi-facebook:before {
  content: "\e9b4";
}
.pi-github:before {
  content: "\e9b5";
}
.pi-twitter:before {
  content: "\e9b6";
}
.pi-step-backward-alt:before {
  content: "\e9ac";
}
.pi-step-forward-alt:before {
  content: "\e9ad";
}
.pi-forward:before {
  content: "\e9ae";
}
.pi-backward:before {
  content: "\e9af";
}
.pi-fast-backward:before {
  content: "\e9b0";
}
.pi-fast-forward:before {
  content: "\e9b1";
}
.pi-pause:before {
  content: "\e9b2";
}
.pi-play:before {
  content: "\e9b3";
}
.pi-compass:before {
  content: "\e9ab";
}
.pi-id-card:before {
  content: "\e9aa";
}
.pi-ticket:before {
  content: "\e9a9";
}
.pi-file-o:before {
  content: "\e9a8";
}
.pi-reply:before {
  content: "\e9a7";
}
.pi-directions-alt:before {
  content: "\e9a5";
}
.pi-directions:before {
  content: "\e9a6";
}
.pi-thumbs-up:before {
  content: "\e9a3";
}
.pi-thumbs-down:before {
  content: "\e9a4";
}
.pi-sort-numeric-down-alt:before {
  content: "\e996";
}
.pi-sort-numeric-up-alt:before {
  content: "\e997";
}
.pi-sort-alpha-down-alt:before {
  content: "\e998";
}
.pi-sort-alpha-up-alt:before {
  content: "\e999";
}
.pi-sort-numeric-down:before {
  content: "\e99a";
}
.pi-sort-numeric-up:before {
  content: "\e99b";
}
.pi-sort-alpha-down:before {
  content: "\e99c";
}
.pi-sort-alpha-up:before {
  content: "\e99d";
}
.pi-sort-alt:before {
  content: "\e99e";
}
.pi-sort-amount-up:before {
  content: "\e99f";
}
.pi-sort-amount-down:before {
  content: "\e9a0";
}
.pi-sort-amount-down-alt:before {
  content: "\e9a1";
}
.pi-sort-amount-up-alt:before {
  content: "\e9a2";
}
.pi-palette:before {
  content: "\e995";
}
.pi-undo:before {
  content: "\e994";
}
.pi-desktop:before {
  content: "\e993";
}
.pi-sliders-v:before {
  content: "\e991";
}
.pi-sliders-h:before {
  content: "\e992";
}
.pi-search-plus:before {
  content: "\e98f";
}
.pi-search-minus:before {
  content: "\e990";
}
.pi-file-excel:before {
  content: "\e98e";
}
.pi-file-pdf:before {
  content: "\e98d";
}
.pi-check-square:before {
  content: "\e98c";
}
.pi-chart-line:before {
  content: "\e98b";
}
.pi-user-edit:before {
  content: "\e98a";
}
.pi-exclamation-circle:before {
  content: "\e989";
}
.pi-android:before {
  content: "\e985";
}
.pi-google:before {
  content: "\e986";
}
.pi-apple:before {
  content: "\e987";
}
.pi-microsoft:before {
  content: "\e988";
}
.pi-heart:before {
  content: "\e984";
}
.pi-mobile:before {
  content: "\e982";
}
.pi-tablet:before {
  content: "\e983";
}
.pi-key:before {
  content: "\e981";
}
.pi-shopping-cart:before {
  content: "\e980";
}
.pi-comments:before {
  content: "\e97e";
}
.pi-comment:before {
  content: "\e97f";
}
.pi-briefcase:before {
  content: "\e97d";
}
.pi-bell:before {
  content: "\e97c";
}
.pi-paperclip:before {
  content: "\e97b";
}
.pi-share-alt:before {
  content: "\e97a";
}
.pi-envelope:before {
  content: "\e979";
}
.pi-volume-down:before {
  content: "\e976";
}
.pi-volume-up:before {
  content: "\e977";
}
.pi-volume-off:before {
  content: "\e978";
}
.pi-eject:before {
  content: "\e975";
}
.pi-money-bill:before {
  content: "\e974";
}
.pi-images:before {
  content: "\e973";
}
.pi-image:before {
  content: "\e972";
}
.pi-sign-in:before {
  content: "\e970";
}
.pi-sign-out:before {
  content: "\e971";
}
.pi-wifi:before {
  content: "\e96f";
}
.pi-sitemap:before {
  content: "\e96e";
}
.pi-chart-bar:before {
  content: "\e96d";
}
.pi-camera:before {
  content: "\e96c";
}
.pi-dollar:before {
  content: "\e96b";
}
.pi-lock-open:before {
  content: "\e96a";
}
.pi-table:before {
  content: "\e969";
}
.pi-map-marker:before {
  content: "\e968";
}
.pi-list:before {
  content: "\e967";
}
.pi-eye-slash:before {
  content: "\e965";
}
.pi-eye:before {
  content: "\e966";
}
.pi-folder-open:before {
  content: "\e964";
}
.pi-folder:before {
  content: "\e963";
}
.pi-video:before {
  content: "\e962";
}
.pi-inbox:before {
  content: "\e961";
}
.pi-lock:before {
  content: "\e95f";
}
.pi-unlock:before {
  content: "\e960";
}
.pi-tags:before {
  content: "\e95d";
}
.pi-tag:before {
  content: "\e95e";
}
.pi-power-off:before {
  content: "\e95c";
}
.pi-save:before {
  content: "\e95b";
}
.pi-question-circle:before {
  content: "\e959";
}
.pi-question:before {
  content: "\e95a";
}
.pi-copy:before {
  content: "\e957";
}
.pi-file:before {
  content: "\e958";
}
.pi-clone:before {
  content: "\e955";
}
.pi-calendar-times:before {
  content: "\e952";
}
.pi-calendar-minus:before {
  content: "\e953";
}
.pi-calendar-plus:before {
  content: "\e954";
}
.pi-ellipsis-v:before {
  content: "\e950";
}
.pi-ellipsis-h:before {
  content: "\e951";
}
.pi-bookmark:before {
  content: "\e94e";
}
.pi-globe:before {
  content: "\e94f";
}
.pi-replay:before {
  content: "\e94d";
}
.pi-filter:before {
  content: "\e94c";
}
.pi-print:before {
  content: "\e94b";
}
.pi-align-right:before {
  content: "\e946";
}
.pi-align-left:before {
  content: "\e947";
}
.pi-align-center:before {
  content: "\e948";
}
.pi-align-justify:before {
  content: "\e949";
}
.pi-cog:before {
  content: "\e94a";
}
.pi-cloud-download:before {
  content: "\e943";
}
.pi-cloud-upload:before {
  content: "\e944";
}
.pi-cloud:before {
  content: "\e945";
}
.pi-pencil:before {
  content: "\e942";
}
.pi-users:before {
  content: "\e941";
}
.pi-clock:before {
  content: "\e940";
}
.pi-user-minus:before {
  content: "\e93e";
}
.pi-user-plus:before {
  content: "\e93f";
}
.pi-trash:before {
  content: "\e93d";
}
.pi-window-minimize:before {
  content: "\e93a";
}
.pi-window-maximize:before {
  content: "\e93b";
}
.pi-external-link:before {
  content: "\e93c";
}
.pi-refresh:before {
  content: "\e938";
}
.pi-user:before {
  content: "\e939";
}
.pi-exclamation-triangle:before {
  content: "\e922";
}
.pi-calendar:before {
  content: "\e927";
}
.pi-chevron-circle-left:before {
  content: "\e928";
}
.pi-chevron-circle-down:before {
  content: "\e929";
}
.pi-chevron-circle-right:before {
  content: "\e92a";
}
.pi-chevron-circle-up:before {
  content: "\e92b";
}
.pi-angle-double-down:before {
  content: "\e92c";
}
.pi-angle-double-left:before {
  content: "\e92d";
}
.pi-angle-double-right:before {
  content: "\e92e";
}
.pi-angle-double-up:before {
  content: "\e92f";
}
.pi-angle-down:before {
  content: "\e930";
}
.pi-angle-left:before {
  content: "\e931";
}
.pi-angle-right:before {
  content: "\e932";
}
.pi-angle-up:before {
  content: "\e933";
}
.pi-upload:before {
  content: "\e934";
}
.pi-download:before {
  content: "\e956";
}
.pi-ban:before {
  content: "\e935";
}
.pi-star-fill:before {
  content: "\e936";
}
.pi-star:before {
  content: "\e937";
}
.pi-chevron-left:before {
  content: "\e900";
}
.pi-chevron-right:before {
  content: "\e901";
}
.pi-chevron-down:before {
  content: "\e902";
}
.pi-chevron-up:before {
  content: "\e903";
}
.pi-caret-left:before {
  content: "\e904";
}
.pi-caret-right:before {
  content: "\e905";
}
.pi-caret-down:before {
  content: "\e906";
}
.pi-caret-up:before {
  content: "\e907";
}
.pi-search:before {
  content: "\e908";
}
.pi-check:before {
  content: "\e909";
}
.pi-check-circle:before {
  content: "\e90a";
}
.pi-times:before {
  content: "\e90b";
}
.pi-times-circle:before {
  content: "\e90c";
}
.pi-plus:before {
  content: "\e90d";
}
.pi-plus-circle:before {
  content: "\e90e";
}
.pi-minus:before {
  content: "\e90f";
}
.pi-minus-circle:before {
  content: "\e910";
}
.pi-circle-on:before {
  content: "\e911";
}
.pi-circle-off:before {
  content: "\e912";
}
.pi-sort-down:before {
  content: "\e913";
}
.pi-sort-up:before {
  content: "\e914";
}
.pi-sort:before {
  content: "\e915";
}
.pi-step-backward:before {
  content: "\e916";
}
.pi-step-forward:before {
  content: "\e917";
}
.pi-th-large:before {
  content: "\e918";
}
.pi-arrow-down:before {
  content: "\e919";
}
.pi-arrow-left:before {
  content: "\e91a";
}
.pi-arrow-right:before {
  content: "\e91b";
}
.pi-arrow-up:before {
  content: "\e91c";
}
.pi-bars:before {
  content: "\e91d";
}
.pi-arrow-circle-down:before {
  content: "\e91e";
}
.pi-arrow-circle-left:before {
  content: "\e91f";
}
.pi-arrow-circle-right:before {
  content: "\e920";
}
.pi-arrow-circle-up:before {
  content: "\e921";
}
.pi-info:before {
  content: "\e923";
}
.pi-info-circle:before {
  content: "\e924";
}
.pi-home:before {
  content: "\e925";
}
.pi-spinner:before {
  content: "\e926";
}
:root {
  --color-primary: #1a73e8;
  --color-primary-hover: #1662c9;
  --color-primary-active: #1354ac;
  --color-primary-soft: #e8f0fe;
  --color-primary-softer: #f3f7fe;
  --color-primary-border: #c6dafc;
  --color-success: #34a853;
  --color-success-soft: #e6f4ea;
  --color-success-border: #b7e1c3;
  --color-warning: #f59e0b;
  --color-warning-soft: #fef4e6;
  --color-warning-border: #fbd89b;
  --color-danger: #dc2626;
  --color-danger-soft: #fdecec;
  --color-danger-border: #f6bdbd;
  --color-info: #0891b2;
  --color-info-soft: #e5f6fa;
  --color-info-border: #a9dfeb;
  --color-neutral-soft: #f1f3f5;
  --color-neutral-border: #dfe3e8;
  --color-purple: #7c3aed;
  --color-purple-soft: #f1ebfe;
  --color-purple-border: #d8c7fb;
  --gradient-brand:
    linear-gradient(
      135deg,
      #1a73e8 0%,
      #34a853 100%);
  --gradient-brand-soft:
    linear-gradient(
      135deg,
      rgba(26, 115, 232, 0.09) 0%,
      rgba(52, 168, 83, 0.09) 100%);
  --surface-page: #f7f8fa;
  --surface-card: #ffffff;
  --surface-raised: #ffffff;
  --surface-sunken: #f2f4f7;
  --surface-hover: #f5f7fa;
  --surface-active: #eef2f7;
  --surface-inverse: #0f172a;
  --surface-sidebar: #ffffff;
  --surface-header: #ffffff;
  --border-default: #e5e7eb;
  --border-strong: #d3d8de;
  --border-subtle: #eef0f3;
  --text-primary: #111827;
  --text-secondary: #6b7280;
  --text-tertiary: #9aa1ab;
  --text-inverse: #ffffff;
  --text-link: #1a73e8;
  --sidebar-width: 260px;
  --sidebar-collapsed-width: 72px;
  --header-height: 64px;
  --content-max-width: 1680px;
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 999px;
  --shadow-xs: 0 1px 2px rgba(16, 24, 40, 0.05);
  --shadow-sm: 0 1px 3px rgba(16, 24, 40, 0.08), 0 1px 2px rgba(16, 24, 40, 0.04);
  --shadow-md: 0 4px 12px rgba(16, 24, 40, 0.08), 0 2px 4px rgba(16, 24, 40, 0.04);
  --shadow-lg: 0 12px 32px rgba(16, 24, 40, 0.12), 0 4px 8px rgba(16, 24, 40, 0.05);
  --shadow-focus: 0 0 0 3px rgba(26, 115, 232, 0.18);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 32px;
  --space-8: 40px;
  --space-9: 48px;
  --font-sans:
    "Inter",
    "Segoe UI",
    -apple-system,
    BlinkMacSystemFont,
    "Helvetica Neue",
    Arial,
    sans-serif;
  --font-mono:
    "JetBrains Mono",
    "SF Mono",
    "Cascadia Mono",
    Consolas,
    "Courier New",
    monospace;
  --fs-xs: 11px;
  --fs-sm: 12px;
  --fs-base: 13px;
  --fs-md: 14px;
  --fs-lg: 16px;
  --fs-xl: 20px;
  --fs-2xl: 24px;
  --fs-3xl: 30px;
  --z-header: 60;
  --z-sidebar: 70;
  --z-overlay: 1200;
}
.ctv-dark {
  --color-primary: #60a5fa;
  --color-primary-hover: #7db5fa;
  --color-primary-active: #93c5fd;
  --color-primary-soft: #172f50;
  --color-primary-softer: #13243a;
  --color-primary-border: #285486;
  --color-success-soft: #153824;
  --color-success-border: #28613c;
  --color-warning-soft: #422d0d;
  --color-warning-border: #775315;
  --color-danger-soft: #461d22;
  --color-danger-border: #7e3038;
  --color-info-soft: #123845;
  --color-info-border: #246273;
  --color-neutral-soft: #252b35;
  --color-neutral-border: #3b4452;
  --color-purple-soft: #30234b;
  --color-purple-border: #594185;
  --surface-page: #0f141c;
  --surface-card: #171d27;
  --surface-raised: #1c2430;
  --surface-sunken: #111720;
  --surface-hover: #232c39;
  --surface-active: #293545;
  --surface-inverse: #f8fafc;
  --surface-sidebar: #141a23;
  --surface-header: #171d27;
  --border-default: #303947;
  --border-strong: #445063;
  --border-subtle: #252e3a;
  --text-primary: #f1f5f9;
  --text-secondary: #aab4c3;
  --text-tertiary: #7f8a9a;
  --text-inverse: #111827;
  --text-link: #60a5fa;
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.25);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.35), 0 1px 2px rgba(0, 0, 0, 0.2);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.35), 0 2px 4px rgba(0, 0, 0, 0.2);
  --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.45), 0 4px 8px rgba(0, 0, 0, 0.25);
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}
body {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: 1.5;
  color: var(--text-primary);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-weight: 600;
  color: var(--text-primary);
  letter-spacing: -0.01em;
}
p {
  margin: 0;
}
ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
a {
  color: var(--text-link);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
button {
  font-family: inherit;
}
:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
  border-radius: var(--radius-xs);
}
code,
pre,
.mono {
  font-family: var(--font-mono);
}
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: #d5d9df;
  border-radius: var(--radius-pill);
  border: 3px solid transparent;
  background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover {
  background: #bcc2cb;
  background-clip: content-box;
}
.u-flex {
  display: flex;
}
.u-flex-col {
  display: flex;
  flex-direction: column;
}
.u-items-center {
  align-items: center;
}
.u-justify-between {
  justify-content: space-between;
}
.u-gap-1 {
  gap: var(--space-1);
}
.u-gap-2 {
  gap: var(--space-2);
}
.u-gap-3 {
  gap: var(--space-3);
}
.u-gap-4 {
  gap: var(--space-4);
}
.u-gap-6 {
  gap: var(--space-6);
}
.u-wrap {
  flex-wrap: wrap;
}
.u-grow {
  flex: 1 1 auto;
}
.u-w-full {
  width: 100%;
}
.u-mt-2 {
  margin-top: var(--space-2);
}
.u-mt-3 {
  margin-top: var(--space-3);
}
.u-mt-4 {
  margin-top: var(--space-4);
}
.u-mt-6 {
  margin-top: var(--space-6);
}
.u-mb-2 {
  margin-top: 0;
  margin-bottom: var(--space-2);
}
.u-mb-4 {
  margin-bottom: var(--space-4);
}
.u-text-right {
  text-align: right;
}
.u-text-center {
  text-align: center;
}
.u-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.u-nowrap {
  white-space: nowrap;
}
.u-muted {
  color: var(--text-secondary);
}
.u-dim {
  color: var(--text-tertiary);
}
.u-strong {
  font-weight: 600;
}
.u-mono {
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  letter-spacing: -0.02em;
}
.u-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 900px) {
  .u-hide-mobile {
    display: none !important;
  }
}
@media (max-width: 1200px) {
  .u-hide-tablet {
    display: none !important;
  }
}
.page {
  padding: var(--space-6) var(--space-7) var(--space-9);
  max-width: var(--content-max-width);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}
@media (max-width: 900px) {
  .page {
    padding: var(--space-4) var(--space-4) var(--space-8);
    gap: var(--space-4);
  }
}
.section-title {
  font-size: var(--fs-md);
  font-weight: 600;
  letter-spacing: -0.01em;
}
.section-subtitle {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
}
.eyebrow {
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-tertiary);
}
.card {
  background: var(--surface-card);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xs);
}
.card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
  border-bottom: 1px solid var(--border-subtle);
  min-height: 52px;
}
.card__title {
  font-size: var(--fs-md);
  font-weight: 600;
}
.card__desc {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  margin-top: 2px;
}
.card__body {
  padding: var(--space-5);
}
.card__body--flush {
  padding: 0;
}
.card__body--tight {
  padding: var(--space-4);
}
.card__footer {
  padding: var(--space-3) var(--space-5);
  border-top: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  background: var(--surface-sunken);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}
.grid {
  display: grid;
  gap: var(--space-4);
}
.grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid--6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.grid--auto {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.grid--auto-lg {
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
}
@media (max-width: 1500px) {
  .grid--6 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 1200px) {
  .grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 1000px) {
  .grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid--6 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .grid--2,
  .grid--3,
  .grid--4,
  .grid--6 {
    grid-template-columns: minmax(0, 1fr);
  }
}
.split {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: var(--space-5);
  align-items: start;
}
@media (max-width: 1100px) {
  .split {
    grid-template-columns: minmax(0, 1fr);
  }
}
.split--wide {
  grid-template-columns: 380px minmax(0, 1fr);
}
.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 9px;
  border-radius: var(--radius-pill);
  font-size: var(--fs-xs);
  font-weight: 600;
  line-height: 18px;
  letter-spacing: 0.01em;
  white-space: nowrap;
  border: 1px solid transparent;
}
.badge__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  flex: none;
}
.badge--success {
  background: var(--color-success-soft);
  color: #1e7e37;
  border-color: var(--color-success-border);
}
.badge--danger {
  background: var(--color-danger-soft);
  color: #b91c1c;
  border-color: var(--color-danger-border);
}
.badge--warning {
  background: var(--color-warning-soft);
  color: #a26205;
  border-color: var(--color-warning-border);
}
.badge--info {
  background: var(--color-info-soft);
  color: #0e7490;
  border-color: var(--color-info-border);
}
.badge--primary {
  background: var(--color-primary-soft);
  color: #1553b0;
  border-color: var(--color-primary-border);
}
.badge--purple {
  background: var(--color-purple-soft);
  color: #6027d0;
  border-color: var(--color-purple-border);
}
.badge--neutral {
  background: var(--color-neutral-soft);
  color: #4b5563;
  border-color: var(--color-neutral-border);
}
.badge--square {
  border-radius: var(--radius-sm);
}
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 8px;
  border-radius: var(--radius-sm);
  background: var(--surface-sunken);
  border: 1px solid var(--border-default);
  font-size: var(--fs-xs);
  font-weight: 500;
  color: var(--text-secondary);
  white-space: nowrap;
}
.chip--code {
  font-family: var(--font-mono);
  letter-spacing: -0.02em;
  color: var(--text-primary);
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 34px;
  padding: 0 var(--space-3);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-strong);
  background: var(--surface-card);
  color: var(--text-primary);
  font-size: var(--fs-base);
  font-weight: 500;
  cursor: pointer;
  transition:
    background-color 0.14s ease,
    border-color 0.14s ease,
    box-shadow 0.14s ease,
    color 0.14s ease;
  white-space: nowrap;
}
.btn:hover:not(:disabled) {
  background: var(--surface-hover);
  border-color: #c3c9d2;
}
.btn:active:not(:disabled) {
  background: var(--surface-active);
}
.btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.btn i {
  font-size: 13px;
  line-height: 1;
}
.btn--primary {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
  box-shadow: var(--shadow-xs);
}
.btn--primary:hover:not(:disabled) {
  background: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
}
.btn--primary:active:not(:disabled) {
  background: var(--color-primary-active);
}
.btn--danger {
  background: var(--color-danger);
  border-color: var(--color-danger);
  color: #fff;
}
.btn--danger:hover:not(:disabled) {
  background: #b91c1c;
  border-color: #b91c1c;
}
.btn--ghost {
  background: transparent;
  border-color: transparent;
  color: var(--text-secondary);
}
.btn--ghost:hover:not(:disabled) {
  background: var(--surface-hover);
  color: var(--text-primary);
  border-color: transparent;
}
.btn--subtle {
  background: var(--color-primary-soft);
  border-color: var(--color-primary-border);
  color: #1553b0;
}
.btn--subtle:hover:not(:disabled) {
  background: #dbe8fd;
  border-color: #a9c9fa;
}
.btn--sm {
  height: 28px;
  padding: 0 10px;
  font-size: var(--fs-sm);
}
.btn--lg {
  height: 40px;
  padding: 0 var(--space-4);
  font-size: var(--fs-md);
}
.btn--icon {
  width: 34px;
  padding: 0;
}
.btn--icon.btn--sm {
  width: 28px;
}
.btn--block {
  width: 100%;
}
.btn-group {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
}
.segmented {
  display: inline-flex;
  padding: 2px;
  gap: 2px;
  background: var(--surface-sunken);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md);
}
.segmented__item {
  border: 0;
  background: transparent;
  color: var(--text-secondary);
  font-size: var(--fs-sm);
  font-weight: 500;
  padding: 5px 12px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.14s ease;
}
.segmented__item:hover {
  color: var(--text-primary);
}
.segmented__item--active {
  background: var(--surface-card);
  color: var(--text-primary);
  box-shadow: var(--shadow-xs);
}
.tabs {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  border-bottom: 1px solid var(--border-default);
  overflow-x: auto;
  scrollbar-width: none;
}
.tabs::-webkit-scrollbar {
  display: none;
}
.tabs__item {
  position: relative;
  border: 0;
  background: transparent;
  padding: 10px 12px;
  font-size: var(--fs-base);
  font-weight: 500;
  color: var(--text-secondary);
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.14s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.tabs__item:hover {
  color: var(--text-primary);
}
.tabs__item--active {
  color: var(--color-primary);
}
.tabs__item--active::after {
  content: "";
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: -1px;
  height: 2px;
  border-radius: 2px 2px 0 0;
  background: var(--color-primary);
}
.tabs__count {
  font-size: var(--fs-xs);
  font-weight: 600;
  background: var(--surface-sunken);
  border-radius: var(--radius-pill);
  padding: 0 6px;
  color: var(--text-secondary);
}
.table-wrap {
  width: 100%;
  overflow-x: auto;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}
table.ctv-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: var(--fs-base);
  min-width: 720px;
}
table.ctv-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--surface-sunken);
  text-align: left;
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-secondary);
  padding: 10px var(--space-4);
  border-bottom: 1px solid var(--border-default);
  white-space: nowrap;
  -webkit-user-select: none;
  user-select: none;
}
table.ctv-table thead th.is-sortable {
  cursor: pointer;
}
table.ctv-table thead th.is-sortable:hover {
  color: var(--text-primary);
}
.th-inner {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.th-sort {
  font-size: 9px;
  opacity: 0.35;
  transition: opacity 0.14s ease;
}
.th-sort--active {
  opacity: 1;
  color: var(--color-primary);
}
table.ctv-table tbody td {
  padding: 11px var(--space-4);
  border-bottom: 1px solid var(--border-subtle);
  vertical-align: middle;
  color: var(--text-primary);
  text-align: left;
}
table.ctv-table tbody tr {
  transition: background-color 0.12s ease;
}
table.ctv-table tbody tr:hover {
  background: var(--surface-hover);
}
table.ctv-table tbody tr.is-clickable {
  cursor: pointer;
}
table.ctv-table tbody tr.is-selected {
  background: var(--color-primary-softer);
}
table.ctv-table tbody tr:last-child td {
  border-bottom: 0;
}
.td-actions {
  width: 48px;
  text-align: right !important;
}
.td-num {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}
.td-center {
  text-align: center !important;
}
table.ctv-table th.td-num .th-inner,
table.ctv-table th.td-actions .th-inner {
  justify-content: flex-end;
}
table.ctv-table th.td-center .th-inner {
  justify-content: center;
}
table.ctv-table td.td-num .cell-stack,
table.ctv-table td.td-actions .cell-stack {
  align-items: flex-end;
}
table.ctv-table td.td-center .cell-stack {
  align-items: center;
}
.cell-primary {
  font-weight: 600;
  color: var(--text-primary);
}
.cell-sub {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
}
.cell-stack {
  display: flex;
  flex-direction: column;
  line-height: 1.35;
}
.table-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-3) var(--space-4);
  border-top: 1px solid var(--border-subtle);
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  flex-wrap: wrap;
}
.pager {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}
.pager__btn {
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-default);
  background: var(--surface-card);
  color: var(--text-secondary);
  font-size: var(--fs-sm);
  font-weight: 500;
  cursor: pointer;
}
.pager__btn:hover:not(:disabled) {
  background: var(--surface-hover);
  color: var(--text-primary);
}
.pager__btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.pager__btn--active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}
.dl {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--space-4) var(--space-6);
}
.dl--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 720px) {
  .dl--2 {
    grid-template-columns: minmax(0, 1fr);
  }
}
.dl__item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.dl__label {
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-tertiary);
}
.dl__value {
  font-size: var(--fs-base);
  color: var(--text-primary);
  font-weight: 500;
  word-break: break-word;
}
.kv-rows {
  display: flex;
  flex-direction: column;
}
.kv-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: 10px 0;
  border-bottom: 1px solid var(--border-subtle);
  font-size: var(--fs-base);
}
.kv-row:last-child {
  border-bottom: 0;
}
.kv-row__label {
  color: var(--text-secondary);
}
.kv-row__value {
  font-weight: 500;
  text-align: right;
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4) var(--space-5);
}
@media (max-width: 760px) {
  .form-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
.form-grid--1 {
  grid-template-columns: minmax(0, 1fr);
}
.form-grid__full {
  grid-column: 1/-1;
}
.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.field__label {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text-primary);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.field__req {
  color: var(--color-danger);
  font-weight: 600;
}
.field__hint {
  font-size: var(--fs-xs);
  color: var(--text-secondary);
}
.field__error {
  font-size: var(--fs-xs);
  color: var(--color-danger);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.input {
  width: 100%;
  height: 36px;
  padding: 0 10px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-strong);
  background: var(--surface-card);
  color: var(--text-primary);
  font-size: var(--fs-base);
  font-family: inherit;
  transition: border-color 0.14s ease, box-shadow 0.14s ease;
}
.input::placeholder {
  color: var(--text-tertiary);
}
.input:hover:not(:disabled) {
  border-color: #c3c9d2;
}
.input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: var(--shadow-focus);
}
.input:disabled {
  background: var(--surface-sunken);
  color: var(--text-tertiary);
  cursor: not-allowed;
}
.input.is-invalid {
  border-color: var(--color-danger);
}
.input.is-invalid:focus {
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);
}
textarea.input {
  height: auto;
  min-height: 84px;
  padding: 8px 10px;
  resize: vertical;
  line-height: 1.55;
}
select.input {
  appearance: none;
  cursor: pointer;
}
.input-icon-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.input-icon-wrap > i {
  position: absolute;
  left: 10px;
  font-size: 12px;
  color: var(--text-tertiary);
  pointer-events: none;
}
.input-icon-wrap .input {
  padding-left: 30px;
}
.form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border-subtle);
  margin-top: var(--space-2);
}
.switch-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--border-subtle);
}
.switch-row:last-child {
  border-bottom: 0;
}
.switch-row__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.switch-row__title {
  font-size: var(--fs-base);
  font-weight: 600;
}
.switch-row__desc {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
}
.toolbar {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--border-subtle);
}
.toolbar__spacer {
  flex: 1 1 auto;
}
.meter {
  width: 100%;
  height: 6px;
  border-radius: var(--radius-pill);
  background: var(--surface-sunken);
  overflow: hidden;
}
.meter__fill {
  height: 100%;
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.meter__fill--success {
  background: var(--color-success);
}
.meter__fill--warning {
  background: var(--color-warning);
}
.meter__fill--danger {
  background: var(--color-danger);
}
.meter--lg {
  height: 8px;
}
.meter--sm {
  height: 4px;
}
.skeleton {
  background:
    linear-gradient(
      90deg,
      #eef1f4 25%,
      #f6f8fa 37%,
      #eef1f4 63%);
  background-size: 400% 100%;
  animation: ctv-shimmer 1.4s ease infinite;
  border-radius: var(--radius-sm);
}
@keyframes ctv-shimmer {
  0% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0 50%;
  }
}
.avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  font-weight: 600;
  color: #fff;
  flex: none;
  letter-spacing: 0.01em;
  -webkit-user-select: none;
  user-select: none;
}
.avatar--image {
  background: var(--surface-card, #fff);
  border: 1px solid var(--color-primary-border);
  overflow: hidden;
}
.avatar--image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: scale(1.35);
}
.divider {
  height: 1px;
  background: var(--border-subtle);
  border: 0;
  margin: 0;
}
.divider--v {
  width: 1px;
  height: 20px;
  background: var(--border-default);
}
.trend {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: var(--fs-sm);
  font-weight: 600;
}
.trend--up {
  color: #1e7e37;
}
.trend--down {
  color: #b91c1c;
}
.trend--flat {
  color: var(--text-secondary);
}
.stat-value {
  font-size: var(--fs-2xl);
  font-weight: 650;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.scroll-y {
  overflow-y: auto;
}
.masked {
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  letter-spacing: 0.02em;
  color: var(--text-primary);
  background: var(--surface-sunken);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-sm);
  padding: 1px 7px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.alert {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-neutral-border);
  border-radius: var(--radius-md);
  background: var(--color-neutral-soft);
  color: var(--text-primary);
  font-size: var(--fs-sm);
  line-height: 1.45;
}
.alert > .pi {
  margin-top: 2px;
  flex-shrink: 0;
}
.alert--danger {
  background: var(--color-danger-soft);
  border-color: var(--color-danger-border);
}
.alert--danger > .pi {
  color: var(--color-danger);
}
.alert--warning {
  background: var(--color-warning-soft);
  border-color: var(--color-warning-border);
}
.alert--warning > .pi {
  color: var(--color-warning);
}
.alert--success {
  background: var(--color-success-soft);
  border-color: var(--color-success-border);
}
.alert--success > .pi {
  color: var(--color-success);
}
.alert--info {
  background: var(--color-info-soft);
  border-color: var(--color-info-border);
}
.alert--info > .pi {
  color: var(--color-info);
}
.checkbox-row {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  cursor: pointer;
  font-size: var(--fs-sm);
}
.checkbox-row input {
  margin: 0;
}
.password-row {
  display: flex;
  gap: var(--space-2);
  align-items: center;
}
.password-row .input {
  flex: 1 1 auto;
  min-width: 0;
}
.rule-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.rule-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: var(--fs-xs);
  border: 1px solid var(--color-neutral-border);
  background: var(--color-neutral-soft);
  color: var(--text-secondary);
}
.rule-chip--ok {
  border-color: var(--color-success-border);
  background: var(--color-success-soft);
  color: var(--color-success);
}
.u-danger {
  color: var(--color-danger);
}
.page-columns {
  display: grid;
  gap: var(--space-5);
  grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
  align-items: start;
}
@media (max-width: 1000px) {
  .page-columns {
    grid-template-columns: minmax(0, 1fr);
  }
}
.facts {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: var(--space-2) var(--space-4);
  margin: 0;
  font-size: var(--fs-sm);
}
.facts dt {
  color: var(--text-secondary);
}
.facts dd {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}
.p-component {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
}
.p-inputtext,
.p-select,
.p-multiselect,
.p-datepicker-input,
.p-inputnumber-input {
  font-size: var(--fs-base);
  border-radius: var(--radius-sm);
}
.p-select,
.p-multiselect {
  background: var(--surface-card);
  border-color: var(--border-strong);
  min-height: 36px;
  align-items: center;
}
.p-select-label,
.p-multiselect-label {
  padding-block: 0;
  display: flex;
  align-items: center;
  font-size: var(--fs-base);
}
.p-select:not(.p-disabled).p-focus,
.p-multiselect:not(.p-disabled).p-focus,
.p-inputtext:enabled:focus {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-focus);
}
.p-select-option,
.p-multiselect-option {
  font-size: var(--fs-base);
  padding: 7px 12px;
}
.p-select-option.p-select-option-selected,
.p-multiselect-option.p-multiselect-option-selected {
  background: var(--color-primary-soft);
  color: #1553b0;
}
.p-select-overlay,
.p-multiselect-overlay,
.p-datepicker-panel,
.p-popover,
.p-menu {
  border-radius: var(--radius-md);
  border: 1px solid var(--border-default);
  box-shadow: var(--shadow-lg);
}
.p-datepicker {
  width: 100%;
}
.p-datepicker-input {
  width: 100%;
  min-height: 36px;
  background: var(--surface-card);
  border-color: var(--border-strong);
  color: var(--text-primary);
}
.p-datepicker-panel {
  background: var(--surface-card) !important;
  color: var(--text-primary);
  overflow: hidden;
  z-index: 12000 !important;
  opacity: 1;
  isolation: isolate;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.p-datepicker-header {
  padding: 10px 12px;
  background: var(--surface-card) !important;
  border-bottom: 1px solid var(--border-subtle);
}
.p-datepicker-calendar-container,
.p-datepicker-calendar,
.p-datepicker-time-picker,
.p-datepicker-buttonbar {
  background: var(--surface-card) !important;
}
.p-datepicker-day,
.p-datepicker-month,
.p-datepicker-year {
  border-radius: var(--radius-sm);
}
.p-datepicker-day-selected,
.p-datepicker-month-selected,
.p-datepicker-year-selected {
  background: var(--color-primary);
  color: #fff;
}
.p-datepicker-time-picker {
  border-top: 1px solid var(--border-subtle);
}
.filter-select.p-select,
.filter-select.p-multiselect {
  min-width: 158px;
  height: 34px;
  min-height: 34px;
  font-size: var(--fs-sm);
}
.p-dialog {
  border-radius: var(--radius-lg);
  border: 1px solid var(--border-default);
  box-shadow: var(--shadow-lg);
}
.p-dialog .p-dialog-header {
  padding: var(--space-4) var(--space-5);
  border-bottom: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.p-dialog .p-dialog-title {
  font-size: var(--fs-lg);
  font-weight: 600;
  letter-spacing: -0.01em;
}
.p-dialog .p-dialog-content {
  padding: var(--space-5);
}
.p-dialog .p-dialog-footer {
  padding: var(--space-3) var(--space-5);
  border-top: 1px solid var(--border-subtle);
  background: var(--surface-sunken);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  gap: var(--space-2);
}
.p-dialog-mask {
  -webkit-backdrop-filter: blur(1px);
  backdrop-filter: blur(1px);
}
.p-drawer {
  border-left: 1px solid var(--border-default);
  box-shadow: var(--shadow-lg);
}
.p-drawer .p-drawer-header {
  padding: var(--space-4) var(--space-5);
  border-bottom: 1px solid var(--border-subtle);
}
.p-drawer .p-drawer-content {
  padding: 0;
}
.p-menu {
  padding: var(--space-1);
  min-width: 190px;
}
.p-menu .p-menu-item-link {
  padding: 7px 10px;
  border-radius: var(--radius-sm);
  font-size: var(--fs-base);
  gap: var(--space-2);
}
.p-menu .p-menu-item-icon {
  font-size: 13px;
  color: var(--text-secondary);
}
.p-menu .p-menu-submenu-label {
  padding: 6px 10px 4px;
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-tertiary);
}
.p-menu-item.menu-item-danger .p-menu-item-link,
.p-menu-item.menu-item-danger .p-menu-item-icon {
  color: var(--color-danger);
}
.p-tooltip .p-tooltip-text {
  font-size: var(--fs-sm);
  padding: 5px 9px;
  border-radius: var(--radius-sm);
  background: #1f2937;
  box-shadow: var(--shadow-md);
}
.p-tooltip .p-tooltip-arrow {
  border-top-color: #1f2937;
  border-right-color: #1f2937;
  border-bottom-color: #1f2937;
  border-left-color: #1f2937;
}
.p-toast {
  width: 380px;
}
.p-toast .p-toast-message {
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  border-width: 1px;
}
.p-toast .p-toast-message-content {
  padding: var(--space-3) var(--space-4);
  gap: var(--space-3);
}
.p-toast-summary {
  font-size: var(--fs-base);
  font-weight: 600;
}
.p-toast-detail {
  font-size: var(--fs-sm);
  margin-top: 2px;
}
.p-tree {
  border: 0;
  padding: 0;
  background: transparent;
}
.p-tree .p-tree-node-content {
  padding: 5px 8px;
  border-radius: var(--radius-sm);
  gap: 4px;
  transition: background-color 0.12s ease;
}
.p-tree .p-tree-node-content:hover {
  background: var(--surface-hover);
}
.p-tree .p-tree-node-content.p-tree-node-selected {
  background: var(--color-primary-soft);
  color: #1553b0;
}
.p-tree .p-tree-node-label {
  font-size: var(--fs-base);
  min-width: 0;
}
.p-tree .p-tree-node-toggle-button {
  width: 20px;
  height: 20px;
}
.p-tree .p-tree-node-children {
  padding-inline-start: 14px;
}
.p-tree-root-children > .p-tree-node > .p-tree-node-content {
  font-weight: 600;
}
.p-checkbox {
  width: 16px;
  height: 16px;
}
.p-checkbox .p-checkbox-box {
  width: 16px;
  height: 16px;
  border-radius: var(--radius-xs);
}
.p-checkbox-checked .p-checkbox-box {
  background: var(--color-primary);
  border-color: var(--color-primary);
}
.p-toggleswitch-checked .p-toggleswitch-slider {
  background: var(--color-primary);
}
.p-progressbar {
  height: 6px;
  border-radius: var(--radius-pill);
  background: var(--surface-sunken);
}
.p-progressbar .p-progressbar-value {
  background: var(--color-primary);
  border-radius: var(--radius-pill);
}
.p-button {
  font-size: var(--fs-base);
  border-radius: var(--radius-sm);
}
.p-tag {
  border-radius: var(--radius-pill);
  font-size: var(--fs-xs);
  font-weight: 600;
  padding: 2px 9px;
}
.p-confirmdialog {
  max-width: 440px;
}
.p-confirmdialog .p-confirmdialog-message {
  font-size: var(--fs-md);
  color: var(--text-secondary);
}
.p-stepper .p-steplist {
  padding: 0;
}
.p-step-title {
  font-size: var(--fs-base);
  font-weight: 500;
}
.p-step-active .p-step-title {
  color: var(--color-primary);
  font-weight: 600;
}
.p-steppanels {
  background: transparent;
  padding: 0;
}
.p-steppanel {
  background: transparent;
}

/* angular:styles/global:styles */
/*# sourceMappingURL=styles.css.map */
