@charset "UTF-8";

/* node_modules/primeicons/primeicons.css */
@font-face {
  font-family: "primeicons";
  font-display: block;
  src: url("./media/primeicons-P3Q6XDZG.eot");
  src:
    url("./media/primeicons-P3Q6XDZG.eot?#iefix") format("embedded-opentype"),
    url("./media/primeicons-Y4ZH4LAW.woff2") format("woff2"),
    url("./media/primeicons-67GZ63CG.woff") format("woff"),
    url("./media/primeicons-MMNJ55EH.ttf") format("truetype"),
    url("./media/primeicons-6VHJE6VZ.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";
}

/* src/styles/styles.scss */
:root {
  --brand-name: "Generation Music Academy";
  --logo-path: "/assets/company_logo.svg";
  --brand-login-visual: url(/assets/login-background.jpg);
  --primary: #6c5ce7;
  --primary-hover: #5a4ad6;
  --primary-on: #ffffff;
  --primary-soft: rgba(108, 92, 231, 0.12);
  --primary-soft-strong: rgba(108, 92, 231, 0.18);
  --secondary: #00d4bd;
  --secondary-hover: #00b6c7;
  --secondary-soft: rgba(0, 212, 189, 0.12);
  --accent: #ff2d55;
  --accent-hover: #e8264b;
  --accent-soft: rgba(255, 45, 85, 0.12);
  --success: #00c853;
  --success-soft: rgba(0, 200, 83, 0.12);
  --warning: #ffb703;
  --warning-soft: rgba(255, 183, 3, 0.14);
  --danger: #ff3d71;
  --danger-soft: rgba(255, 61, 113, 0.12);
  --info: #40bfff;
  --info-soft: rgba(64, 191, 255, 0.12);
  --neutral: #64748b;
  --neutral-soft: rgba(100, 116, 139, 0.12);
  --gradient-primary:
    linear-gradient(
      135deg,
      #6c5ce7 0%,
      #a855f7 100%);
  --gradient-secondary:
    linear-gradient(
      135deg,
      #00d4bd 0%,
      #00b6c7 100%);
  --gradient-accent:
    linear-gradient(
      135deg,
      #ff2d55 0%,
      #ff7a59 100%);
  --gradient-violet:
    linear-gradient(
      135deg,
      #a855f7 0%,
      #ec4899 100%);
  --background: #f8f8fc;
  --surface: #ffffff;
  --surface-card: #ffffff;
  --surface-secondary: #f3f4f8;
  --surface-elevated: #ffffff;
  --border: #e6e9f2;
  --divider: #eef1f7;
  --text-primary: #0f172a;
  --text-secondary: #475569;
  --text-muted: #64748b;
  --color-primary: var(--primary);
  --color-primary-light: #8b7cf7;
  --color-primary-hover: var(--primary-hover);
  --color-secondary: var(--secondary);
  --color-accent: var(--accent);
  --color-accent-warm: var(--warning);
  --color-surface: var(--background);
  --color-surface-elevated: var(--surface);
  --color-surface-glass: var(--surface);
  --color-text: var(--text-primary);
  --color-text-muted: var(--text-muted);
  --color-border: var(--border);
  --color-danger: var(--danger);
  --color-success: var(--success);
  --color-warning: var(--warning);
  --font-family:
    "Plus Jakarta Sans",
    "Inter",
    system-ui,
    -apple-system,
    sans-serif;
  --font-heading: var(--font-family);
  --font-body: var(--font-family);
  --font-weight-body: 400;
  --font-weight-label: 500;
  --font-weight-semibold: 600;
  --font-weight-heading: 700;
  --font-weight-kpi: 800;
  --font-size-caption: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 0.875rem;
  --font-size-body-lg: 1rem;
  --font-size-lg: 1.25rem;
  --font-size-xl: 1.5rem;
  --font-size-2xl: 2rem;
  --font-size-3xl: 2.25rem;
  --line-height-tight: 1.25;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.625;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-8: 3rem;
  --space-10: 4rem;
  --radius-sm: 8px;
  --radius-md: 10px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-pill: 999px;
  --shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.04);
  --shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.06);
  --shadow-md: 0 8px 24px rgba(15, 23, 42, 0.08);
  --shadow-lg: 0 16px 40px rgba(15, 23, 42, 0.1);
  --shadow-glow: 0 4px 20px rgba(108, 92, 231, 0.22);
  --focus-ring: 0 0 0 3px rgba(108, 92, 231, 0.28);
  --chart-grid: #e6e9f2;
  --chart-axis: #94a3b8;
  --chart-series-1: #6c5ce7;
  --chart-series-2: #00d4bd;
  --chart-series-3: #a855f7;
  --chart-series-4: #40bfff;
  --chart-series-5: #ffb703;
  --app-bottom-nav-clearance: calc(6.25rem + env(safe-area-inset-bottom, 0px));
  --shell-gradient: var(--background);
  --control-height: 2.35rem;
  --btn-height: 2.35rem;
  --btn-height-sm: 1.95rem;
  --btn-radius: 8px;
  --btn-padding-x: 0.9rem;
  --z-base: 1;
  --z-sticky: 20;
  --z-dropdown: 100;
  --z-overlay: 200;
  --z-modal: 300;
  --z-toast: 400;
  --transition-fast: 150ms ease;
  --transition-base: 220ms cubic-bezier(0.4, 0, 0.2, 1);
  --gradient-brand: var(--gradient-primary);
  --gradient-stage: var(--background);
  --logo-mark-bg: #0f172a;
}
[data-theme=dark] {
  --background: #0b0f17;
  --surface: #111827;
  --surface-card: #1f2937;
  --surface-secondary: #1a2230;
  --surface-elevated: #1f2937;
  --border: #1f2937;
  --divider: #1a202c;
  --text-primary: #f8fafc;
  --text-secondary: #cbd5e1;
  --text-muted: #94a3b8;
  --primary: #8b5cf6;
  --primary-hover: #a78bfa;
  --primary-soft: rgba(139, 92, 246, 0.18);
  --primary-soft-strong: rgba(139, 92, 246, 0.26);
  --secondary: #2dd4bf;
  --secondary-soft: rgba(45, 212, 191, 0.16);
  --accent: #ff3d71;
  --accent-soft: rgba(255, 61, 113, 0.16);
  --success: #22c55e;
  --success-soft: rgba(34, 197, 94, 0.16);
  --warning: #fbbf24;
  --warning-soft: rgba(251, 191, 36, 0.16);
  --danger: #fb7185;
  --danger-soft: rgba(251, 113, 133, 0.16);
  --info: #60a5fa;
  --info-soft: rgba(96, 165, 250, 0.16);
  --gradient-primary:
    linear-gradient(
      135deg,
      #8b5cf6 0%,
      #c084fc 100%);
  --gradient-secondary:
    linear-gradient(
      135deg,
      #2dd4bf 0%,
      #14b8a6 100%);
  --gradient-accent:
    linear-gradient(
      135deg,
      #ff3d71 0%,
      #ff7a59 100%);
  --color-primary-light: #a78bfa;
  --color-secondary: var(--secondary);
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.35);
  --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.35);
  --shadow-md: 0 10px 28px rgba(0, 0, 0, 0.4);
  --shadow-lg: 0 18px 44px rgba(0, 0, 0, 0.45);
  --shadow-glow: 0 4px 24px rgba(139, 92, 246, 0.28);
  --focus-ring: 0 0 0 3px rgba(139, 92, 246, 0.35);
  --chart-grid: #1f2937;
  --chart-axis: #64748b;
  --chart-series-1: #8b5cf6;
  --chart-series-2: #2dd4bf;
  --chart-series-3: #c084fc;
  --chart-series-4: #60a5fa;
  --chart-series-5: #fbbf24;
  --shell-gradient: var(--background);
}
.p-drawer-mask,
.brand-drawer-mask {
  background: rgba(17, 24, 39, 0.4) !important;
  z-index: var(--z-overlay) !important;
}
[data-theme=dark] .p-drawer-mask,
[data-theme=dark] .brand-drawer-mask {
  background: rgba(0, 0, 0, 0.55) !important;
}
.p-drawer,
.brand-drawer {
  width: min(40rem, 100vw) !important;
  max-width: 40rem !important;
  background: var(--surface) !important;
  color: var(--text-primary) !important;
  border: 0 !important;
  border-left: 1px solid color-mix(in srgb, var(--border) 88%, var(--primary)) !important;
  border-radius: var(--radius-lg) 0 0 var(--radius-lg) !important;
  overflow: hidden !important;
  box-shadow: var(--shadow-lg) !important;
  z-index: var(--z-modal) !important;
}
.p-drawer .p-drawer-header,
.brand-drawer .p-drawer-header {
  padding: 1rem 1.25rem 0.85rem !important;
  min-height: 3.75rem;
  gap: 0.75rem;
  border-bottom: 1px solid var(--border);
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--primary-soft) 55%, var(--surface-secondary)),
      var(--surface-secondary));
}
.p-drawer-title {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.3;
  margin: 0;
}
.p-drawer .p-drawer-content,
.brand-drawer .p-drawer-content {
  padding: 1rem 1.25rem 1rem !important;
  background: var(--surface);
}
.p-drawer .p-drawer-content .p-select:not(.phone-input__country),
.brand-drawer .p-drawer-content .p-select:not(.phone-input__country) {
  width: 100%;
}
.p-drawer .p-drawer-content input.p-inputtext,
.p-drawer .p-drawer-content .p-inputnumber,
.p-drawer .p-drawer-content .p-datepicker,
.p-drawer .p-drawer-content p-datepicker,
.brand-drawer .p-drawer-content input.p-inputtext,
.brand-drawer .p-drawer-content .p-inputnumber,
.brand-drawer .p-drawer-content .p-datepicker,
.brand-drawer .p-drawer-content p-datepicker {
  width: 100%;
  max-width: 100%;
}
.p-drawer .p-drawer-content .form-grid,
.brand-drawer .p-drawer-content .form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  align-content: start;
}
@media (min-width: 768px) {
  .p-drawer .p-drawer-content .form-grid,
  .brand-drawer .p-drawer-content .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.p-drawer .p-drawer-content .form-field--full,
.p-drawer .p-drawer-content .form-actions,
.brand-drawer .p-drawer-content .form-field--full,
.brand-drawer .p-drawer-content .form-actions {
  grid-column: 1/-1;
}
.p-drawer .p-drawer-content .form-actions,
.brand-drawer .p-drawer-content .form-actions {
  margin-top: 0.25rem;
  padding-top: 0.25rem;
}
.p-drawer .p-drawer-content app-form-field,
.p-drawer .p-drawer-content .form-field,
.brand-drawer .p-drawer-content app-form-field,
.brand-drawer .p-drawer-content .form-field {
  gap: 0.35rem;
}
.p-drawer .p-drawer-content .branch-scope-hint,
.brand-drawer .p-drawer-content .branch-scope-hint {
  margin-bottom: 0.25rem;
  padding: 0.65rem 0.85rem;
}
.p-drawer .p-drawer-close-button,
.p-drawer-header .p-button {
  color: var(--text-muted) !important;
}
.p-drawer .p-drawer-close-button:hover,
.p-drawer-header .p-button:hover {
  background: var(--primary-soft) !important;
  color: var(--primary) !important;
}
.p-dialog {
  border-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  background: var(--surface-elevated) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow-md) !important;
  padding: 0 !important;
}
.p-dialog .p-dialog-header,
.p-dialog .p-dialog-content,
.p-dialog .p-dialog-footer {
  background: var(--surface);
  color: var(--text-primary);
  border-color: var(--border);
  border-radius: 0 !important;
}
.p-dialog.app-update-dialog {
  width: min(26rem, 100vw - 2rem) !important;
}
.p-dialog.app-update-dialog .p-dialog-header {
  padding: 1rem 1.15rem !important;
  background: var(--surface-secondary);
  border-bottom: 1px solid var(--border);
}
.p-dialog.app-update-dialog .p-dialog-content {
  padding: 1rem 1.15rem 0.5rem !important;
}
.p-dialog.app-update-dialog .p-dialog-footer {
  padding: 0.65rem 1.15rem 1.1rem !important;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  background: transparent;
}
.p-dialog.app-confirm-dialog .p-dialog-header,
.p-dialog.app-confirm-dialog .p-dialog-content,
.p-dialog.app-confirm-dialog .p-dialog-footer,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-header,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-content,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-footer {
  background: transparent;
  border-color: transparent;
}
.p-dialog .p-dialog-title {
  color: var(--text-primary);
  font-weight: 700;
}
.app-confirm-dialog-mask.p-dialog-mask,
.p-dialog-mask.app-confirm-dialog-mask {
  background: rgba(17, 24, 39, 0.42) !important;
  z-index: var(--z-modal) !important;
}
[data-theme=dark] .app-confirm-dialog-mask.p-dialog-mask,
[data-theme=dark] .p-dialog-mask.app-confirm-dialog-mask {
  background: rgba(0, 0, 0, 0.58) !important;
}
.p-dialog.app-confirm-dialog,
.p-dialog.p-confirmdialog.app-confirm-dialog {
  width: min(26rem, 100vw - 2rem) !important;
  max-width: 26rem !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-lg) !important;
  background: var(--surface-elevated) !important;
  box-shadow: var(--shadow-md) !important;
  outline: none !important;
  overflow: hidden;
}
.p-dialog.app-confirm-dialog:focus,
.p-dialog.app-confirm-dialog:focus-visible,
.p-dialog.p-confirmdialog.app-confirm-dialog:focus,
.p-dialog.p-confirmdialog.app-confirm-dialog:focus-visible {
  outline: none !important;
  box-shadow: var(--shadow-md) !important;
}
.p-dialog.app-confirm-dialog .p-dialog-header,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-header {
  padding: 1rem 1.15rem !important;
  border: none !important;
  border-bottom: 1px solid var(--border) !important;
  border-radius: 0 !important;
  background: var(--surface-secondary) !important;
  box-shadow: none !important;
}
.p-dialog.app-confirm-dialog .p-dialog-title,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
}
.p-dialog.app-confirm-dialog .p-dialog-header-actions .p-button,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-header-actions .p-button {
  width: 2rem;
  height: 2rem;
  color: var(--text-muted) !important;
}
.p-dialog.app-confirm-dialog .p-dialog-header-actions .p-button:hover,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-header-actions .p-button:hover {
  background: var(--primary-soft) !important;
  color: var(--primary) !important;
}
.p-dialog.app-confirm-dialog .p-dialog-content,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-content {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1.15rem 1.25rem !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.p-dialog.app-confirm-dialog .p-confirmdialog-icon,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-confirmdialog-icon {
  flex-shrink: 0;
  margin-top: 0.1rem;
  font-size: 1.35rem;
  color: var(--warning);
}
.p-dialog.app-confirm-dialog .p-confirmdialog-message,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-confirmdialog-message {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--text-primary);
}
.p-dialog.app-confirm-dialog .p-dialog-footer,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.65rem 1.15rem 1.15rem !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.p-dialog.app-confirm-dialog .app-confirm-dialog__reject.p-button,
.p-dialog.p-confirmdialog.app-confirm-dialog .app-confirm-dialog__reject.p-button {
  min-width: 4.5rem;
  color: var(--text-primary) !important;
  background: color-mix(in srgb, var(--primary) 18%, var(--surface-elevated)) !important;
  border: 1px solid color-mix(in srgb, var(--primary) 35%, var(--border)) !important;
}
.p-dialog.app-confirm-dialog .app-confirm-dialog__reject.p-button:hover,
.p-dialog.p-confirmdialog.app-confirm-dialog .app-confirm-dialog__reject.p-button:hover {
  background: color-mix(in srgb, var(--primary) 26%, var(--surface-elevated)) !important;
}
.p-dialog.app-confirm-dialog .app-confirm-dialog__accept.p-button,
.p-dialog.p-confirmdialog.app-confirm-dialog .app-confirm-dialog__accept.p-button {
  min-width: 4.5rem;
  background: var(--primary) !important;
  border-color: var(--primary) !important;
  color: #fff !important;
}
.p-dialog.app-confirm-dialog .app-confirm-dialog__accept.p-button:hover,
.p-dialog.p-confirmdialog.app-confirm-dialog .app-confirm-dialog__accept.p-button:hover {
  background: var(--primary-hover, color-mix(in srgb, var(--primary) 88%, #000)) !important;
  border-color: var(--primary-hover, color-mix(in srgb, var(--primary) 88%, #000)) !important;
}
.p-dialog.app-confirm-dialog .app-confirm-dialog__accept--danger.p-button,
.p-dialog.p-confirmdialog.app-confirm-dialog .app-confirm-dialog__accept--danger.p-button {
  background: var(--danger) !important;
  border-color: var(--danger) !important;
}
.p-dialog.app-confirm-dialog .app-confirm-dialog__accept--danger.p-button:hover,
.p-dialog.p-confirmdialog.app-confirm-dialog .app-confirm-dialog__accept--danger.p-button:hover {
  background: color-mix(in srgb, var(--danger) 88%, #000) !important;
  border-color: color-mix(in srgb, var(--danger) 88%, #000) !important;
}
@media (max-width: 767px) {
  .p-dialog.app-confirm-dialog,
  .p-dialog.p-confirmdialog.app-confirm-dialog {
    width: calc(100vw - 1.5rem) !important;
    max-width: calc(100vw - 1.5rem) !important;
  }
  .p-dialog.app-confirm-dialog .p-dialog-footer,
  .p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-footer {
    flex-direction: column-reverse;
  }
  .p-dialog.app-confirm-dialog .p-dialog-footer .p-button,
  .p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-footer .p-button {
    width: 100%;
  }
}
.p-dialog.staff-visit-dialog {
  width: min(32rem, 100vw - 2rem) !important;
}
.p-dialog.staff-visit-dialog .p-dialog-header {
  padding: 1rem 1.15rem !important;
  background: var(--surface-secondary);
  border-bottom: 1px solid var(--border);
}
.p-dialog.staff-visit-dialog .p-dialog-content {
  padding: 1rem 1.15rem !important;
}
.p-dialog.staff-visit-dialog .p-dialog-footer {
  padding: 0.65rem 1.15rem calc(1rem + env(safe-area-inset-bottom)) !important;
}
@media (max-width: 767px) {
  .p-dialog.staff-visit-dialog {
    width: 100vw !important;
    max-width: 100vw !important;
    max-height: 92vh;
    margin: 0 !important;
    align-self: flex-end;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important;
  }
}
@media (max-width: 767px) {
  .p-drawer,
  .brand-drawer {
    width: 100% !important;
    max-width: 100vw !important;
    border-left: 0 !important;
    border-radius: 0 !important;
  }
  .p-drawer .p-drawer-header,
  .brand-drawer .p-drawer-header {
    padding: calc(1rem + env(safe-area-inset-top)) 1rem 0.85rem !important;
    min-height: 3.5rem;
  }
  .p-drawer .p-drawer-content,
  .brand-drawer .p-drawer-content {
    padding: 1rem 1rem calc(1.25rem + env(safe-area-inset-bottom)) !important;
  }
}
.p-drawer,
.brand-drawer {
  display: flex !important;
  flex-direction: column !important;
  height: 100dvh !important;
  max-height: 100dvh !important;
}
.p-drawer .p-drawer-content,
.brand-drawer .p-drawer-content {
  position: relative;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden !important;
}
.p-drawer .p-drawer-content:has(app-audit-meta),
.brand-drawer .p-drawer-content:has(app-audit-meta) {
  padding-bottom: calc(5.25rem + env(safe-area-inset-bottom, 0px)) !important;
}
.p-drawer .p-drawer-content > form:has(app-audit-meta),
.p-drawer .p-drawer-content > .leave-detail:has(app-audit-meta),
.brand-drawer .p-drawer-content > form:has(app-audit-meta),
.brand-drawer .p-drawer-content > .leave-detail:has(app-audit-meta),
.p-drawer .p-drawer-content > form,
.brand-drawer .p-drawer-content > form {
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.p-drawer .p-drawer-content app-audit-meta,
.brand-drawer .p-drawer-content app-audit-meta {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  margin-top: 0 !important;
  padding: var(--space-3) 1.5rem calc(1.25rem + env(safe-area-inset-bottom, 0px));
  background: var(--surface);
  border-top: 1px solid var(--border);
  box-shadow: 0 -10px 24px rgba(15, 23, 42, 0.08);
}
[data-theme=dark] .p-drawer .p-drawer-content app-audit-meta,
[data-theme=dark] .brand-drawer .p-drawer-content app-audit-meta {
  box-shadow: 0 -10px 24px rgba(0, 0, 0, 0.35);
}
.p-drawer .p-drawer-content app-audit-meta .audit-meta,
.brand-drawer .p-drawer-content app-audit-meta .audit-meta {
  border-top: 0;
  padding-top: 0;
}
.shell__content > router-outlet + *:has(.page-with-audit-footer),
.shell__content > router-outlet + *:has(form.student-form app-audit-meta),
.shell__content > router-outlet + *:has(.page-detail-shell app-audit-meta) {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 100%;
}
.page-with-audit-footer,
.page:has(> form.student-form app-audit-meta) {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 100%;
}
.page-with-audit-footer__body,
.page:has(> form.student-form app-audit-meta) > form.student-form {
  flex: 1 1 auto;
  min-height: 0;
}
.page-with-audit-footer > app-audit-meta,
.page:has(> form.student-form app-audit-meta) form.student-form > app-audit-meta,
.page-detail-shell > app-audit-meta {
  margin-top: auto;
  position: sticky;
  bottom: 0;
  z-index: 1;
  padding-bottom: var(--space-2);
  background: var(--background);
}
.page-detail-shell {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 100%;
}
@media (max-width: 767px) {
  .p-drawer .p-drawer-content app-audit-meta,
  .brand-drawer .p-drawer-content app-audit-meta {
    padding-inline: 1rem;
    padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
  }
  .p-drawer .p-drawer-content:has(app-audit-meta),
  .brand-drawer .p-drawer-content:has(app-audit-meta) {
    padding-bottom: calc(5.25rem + env(safe-area-inset-bottom, 0px)) !important;
  }
}
.p-drawer.form-drawer {
  width: min(580px, 100vw) !important;
  max-width: 580px !important;
  height: 100dvh !important;
  background: #fcfcff !important;
  border: 0 !important;
  border-left: 1px solid #e8e7f0 !important;
  border-radius: 0 !important;
  box-shadow: -12px 0 40px rgba(30, 24, 60, 0.1) !important;
}
@media (max-width: 1100px) {
  .p-drawer.form-drawer {
    width: min(520px, 100vw) !important;
    max-width: 520px !important;
  }
}
@media (max-width: 767px) {
  .p-drawer.form-drawer {
    width: 100% !important;
    max-width: 100vw !important;
  }
}
.form-drawer .p-drawer-header {
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  min-height: 112px;
  padding: 0 !important;
  border-bottom: 1px solid #ece9f6 !important;
  background:
    linear-gradient(
      110deg,
      #ffffff 0%,
      #fbfaff 48%,
      #f2eeff 100%) !important;
}
.form-drawer__header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 112px;
  padding: 20px 20px 18px 24px;
  box-sizing: border-box;
}
.form-drawer__wave {
  position: absolute;
  right: -28px;
  top: -22px;
  width: 470px;
  height: 168px;
  object-fit: cover;
  object-position: right center;
  pointer-events: none;
  opacity: 0.9;
  mask-image:
    linear-gradient(
      to right,
      transparent 0%,
      rgba(0, 0, 0, 0.25) 18%,
      #000 46%);
  animation: staff-wave-float 7s ease-in-out infinite;
}
.form-drawer__heading {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
  max-width: calc(100% - 48px);
}
.form-drawer__mark {
  width: 46px;
  height: 46px;
  flex-shrink: 0;
  border-radius: 14px;
  background: #f0ebff;
  color: #7357f6;
  display: grid;
  place-items: center;
  font-size: 18px;
}
.form-drawer__title {
  margin: 0;
  font-size: 23px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #171b36;
  line-height: 1.15;
}
.form-drawer__subtitle {
  margin: 4px 0 0;
  font-size: 13px;
  color: #778198;
  line-height: 1.35;
}
.form-drawer__close {
  position: relative;
  z-index: 2;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #52617a;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background 150ms ease;
}
.form-drawer__close:hover {
  background: #f3f1fa;
}
.form-drawer .p-drawer-content {
  background: #fcfcff !important;
  padding: 0 !important;
}
.form-drawer .p-drawer-content:has(app-audit-meta) {
  padding-bottom: 0 !important;
}
.form-drawer .p-drawer-content > form,
.form-drawer .p-drawer-content > .staff-form {
  padding: 20px 24px 16px;
}
.form-drawer .p-drawer-content app-audit-meta {
  position: static !important;
  margin-top: 24px !important;
  padding: 12px 0 0 !important;
  background: transparent !important;
  border-top: 1px solid #eceaf3 !important;
  box-shadow: none !important;
}
.form-drawer .p-drawer-footer {
  position: sticky;
  bottom: 0;
  z-index: 20;
  flex: 0 0 auto;
  padding: 0 !important;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(12px);
  border-top: 1px solid #eceef4;
}
.form-drawer__footer {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding: 16px 20px;
}
.form-drawer__cancel,
.form-drawer__submit {
  height: 42px;
  border-radius: 9px;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition:
    background 150ms ease,
    box-shadow 150ms ease,
    transform 150ms ease,
    border-color 150ms ease;
}
.form-drawer__cancel {
  padding: 0 16px;
  border: 1px solid #e4e7ef;
  background: #fff;
  color: #39425a;
}
.form-drawer__cancel:hover {
  background: #f7f8fb;
}
.form-drawer__submit {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 20px;
  border: 0;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #7956f6 0%,
      #6845ee 100%);
  box-shadow: 0 5px 14px rgba(105, 72, 238, 0.22);
}
.form-drawer__submit:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(105, 72, 238, 0.3);
}
.form-drawer__submit:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
.form-drawer .staff-form__block-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 18px;
}
.form-drawer .staff-form__step {
  width: 42px;
  height: 42px;
  flex-shrink: 0;
  border-radius: 12px;
  background: #eee9ff;
  color: #6948f2;
  display: grid;
  place-items: center;
  font-size: 13px;
  font-weight: 700;
}
.form-drawer .staff-form__block-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 650;
  color: #1c2140;
}
.form-drawer .staff-form__block-head p {
  margin: 2px 0 0;
  font-size: 12px;
  color: #8790a5;
}
.form-drawer .staff-form__block--split {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid #eceaf3;
}
.form-drawer .staff-form__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
@media (min-width: 640px) {
  .form-drawer .staff-form__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .form-drawer .staff-form__field--full {
    grid-column: 1/-1;
  }
}
.form-drawer .staff-form__field label,
.form-drawer .form-field label,
.form-drawer .form-field .form-field__label {
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: #52617a;
}
.form-drawer .p-select-label,
.form-drawer .p-select-label span {
  text-transform: none;
}
.form-drawer .field-required {
  color: #f05265;
}
.form-drawer .staff-input {
  position: relative;
  display: flex;
  align-items: center;
}
.form-drawer .staff-input > .pi,
.form-drawer .staff-input__prefix {
  position: absolute;
  left: 12px;
  top: 50%;
  z-index: 2;
  width: 14px;
  height: 14px;
  margin: 0;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  color: #9aa4b7;
  font-size: 13px;
  line-height: 1;
  pointer-events: none;
}
.form-drawer .staff-input:not(.staff-input--phone) .p-inputtext,
.form-drawer .staff-input:not(.staff-input--phone) input.p-inputtext,
.form-drawer .p-inputnumber-input,
.form-drawer .p-datepicker-input {
  width: 100%;
  height: 38px !important;
  min-height: 38px !important;
  border: 1px solid #dfe3ec !important;
  border-radius: 9px !important;
  background: #fff !important;
  color: #283047 !important;
  font-size: 13.5px !important;
  box-shadow: none !important;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}
.form-drawer .staff-input:not(.staff-input--phone):not(.staff-input--select) .p-inputtext,
.form-drawer .staff-input:not(.staff-input--phone):not(.staff-input--select) input.p-inputtext {
  height: 38px;
  padding: 0 12px 0 34px !important;
  line-height: 38px;
}
.form-drawer .staff-input .p-inputtext::placeholder {
  color: #9aa4b7;
}
.form-drawer .staff-input .p-inputtext:hover {
  border-color: #cac3ed !important;
}
.form-drawer .staff-input .p-inputtext:focus {
  border-color: #7357f6 !important;
  box-shadow: 0 0 0 3px rgba(115, 87, 246, 0.1) !important;
}
.form-drawer .staff-input--select .p-select {
  width: 100%;
  height: 38px;
  min-height: 38px;
  border: 1px solid #dfe3ec;
  border-radius: 9px;
  background: #fff;
  display: flex;
  align-items: center;
}
.form-drawer .staff-input--select .p-select-label {
  display: flex;
  align-items: center;
  min-height: 0;
  height: 100%;
  padding: 0 8px 0 34px !important;
  line-height: 1.2;
  font-size: 13.5px;
}
.form-drawer .staff-input--phone {
  height: 38px;
  border: 1px solid #dfe3ec;
  border-radius: 9px;
  background: #fff;
  padding: 0 8px 0 34px;
  box-sizing: border-box;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}
.form-drawer .staff-input--phone:hover {
  border-color: #cac3ed;
}
.form-drawer .staff-input--phone:focus-within {
  border-color: #7357f6;
  box-shadow: 0 0 0 3px rgba(115, 87, 246, 0.1);
}
.form-drawer .staff-input--phone .phone-input {
  display: flex;
  align-items: center;
  gap: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  box-sizing: border-box;
}
.form-drawer .staff-input--phone .phone-input__country,
.form-drawer .staff-input--phone p-select.phone-input__country,
.form-drawer .staff-input--phone p-select.phone-input__country .p-select {
  width: 4.25rem !important;
  min-width: 4.25rem !important;
  max-width: 4.25rem !important;
  height: 36px !important;
  min-height: 36px !important;
  align-self: center;
  display: flex !important;
  align-items: center !important;
}
.form-drawer .staff-input--phone .phone-input__number-wrap {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  min-width: 0;
  height: 100%;
}
.form-drawer .staff-input--phone .p-select,
.form-drawer .staff-input--phone .phone-input__number {
  height: 36px !important;
  min-height: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 13.5px !important;
}
.form-drawer .staff-input--phone .p-select {
  display: flex !important;
  align-items: center !important;
}
.form-drawer .staff-input--phone .phone-input__country .p-select-label {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 0 0 2px !important;
  line-height: 1 !important;
  overflow: visible !important;
}
.form-drawer .staff-input--phone .phone-input__selected {
  line-height: 1;
  font-size: 13.5px;
  font-weight: 600;
}
.form-drawer .staff-input--phone .p-select-dropdown {
  width: 1.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.form-drawer .staff-input--phone .phone-input__number {
  padding: 0 8px !important;
  line-height: 36px !important;
}
.branch-scope-card__panel.p-select-overlay {
  z-index: 1400 !important;
  min-width: 220px;
}
.form-drawer .staff-input--select .p-select:hover {
  border-color: #cac3ed;
}
.form-drawer .staff-input--select .p-select.p-focus {
  border-color: #7357f6;
  box-shadow: 0 0 0 3px rgba(115, 87, 246, 0.1);
}
.form-drawer .staff-input--phone .pi {
  z-index: 2;
}
.form-drawer .p-inputnumber,
.form-drawer .p-datepicker,
.form-drawer p-datepicker,
.form-drawer .p-datepicker-input-icon-container {
  width: 100%;
}
.form-drawer .p-inputnumber-input:hover,
.form-drawer .p-datepicker-input:hover {
  border-color: #cac3ed !important;
}
.form-drawer .p-inputnumber-input:focus,
.form-drawer .p-datepicker-input:focus {
  border-color: #7357f6 !important;
  box-shadow: 0 0 0 3px rgba(115, 87, 246, 0.1) !important;
}
.form-drawer .p-drawer-content > .attendance-list,
.form-drawer .p-drawer-content > app-empty-state,
.form-drawer .p-drawer-content > app-skeleton-list-row {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  margin: 0;
  padding: 8px 24px 24px;
}
.form-drawer .staff-form__hint {
  margin: 8px 0 0;
  font-size: 12px;
  color: #8790a5;
}
.form-drawer .staff-form__hint--warn {
  color: #b45309;
  margin-bottom: 12px;
}
.form-drawer .staff-status {
  display: flex;
  gap: 8px;
}
.form-drawer .staff-status__option {
  flex: 1;
  height: 38px;
  border-radius: 9px;
  border: 1px solid #ddd7f7;
  background: #fff;
  color: #39425a;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  transition:
    background 150ms ease,
    color 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease;
}
.form-drawer .staff-status__option.is-active {
  border-color: transparent;
  color: #fff;
  background:
    linear-gradient(
      135deg,
      #7956f6,
      #6845ee);
  box-shadow: 0 4px 12px rgba(105, 72, 238, 0.18);
}
.form-drawer .staff-status__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #39d98a;
}
.form-drawer .staff-status__dot--idle {
  background: #c5cad6;
}
.form-drawer .staff-status__option.is-active .staff-status__dot--idle {
  background: #fff;
}
.form-drawer .p-tabs {
  padding: 8px 24px 0;
  background: #fcfcff;
}
@media (max-width: 767px) {
  .form-drawer__wave {
    width: 230px;
    height: 120px;
    right: -16px;
    top: -8px;
    opacity: 0.55;
  }
  .form-drawer__title {
    font-size: 20px;
  }
  .form-drawer .p-drawer-content > form {
    padding-inline: 16px;
  }
}
@keyframes staff-wave-float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-3px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .form-drawer__wave {
    animation: none;
  }
  .form-drawer__submit:hover:not(:disabled) {
    transform: none;
  }
}
[data-theme=dark] .p-drawer.form-drawer {
  background: #12141c !important;
  color: #f4f6fb !important;
  border-left-color: #2c3142 !important;
  box-shadow: -12px 0 40px rgba(0, 0, 0, 0.5) !important;
}
[data-theme=dark] .form-drawer .p-drawer-header {
  border-bottom-color: #2a2740 !important;
  background:
    linear-gradient(
      110deg,
      #16141f 0%,
      #1b1730 52%,
      #261c40 100%) !important;
}
[data-theme=dark] .form-drawer__title {
  color: #f7f8fc;
}
[data-theme=dark] .form-drawer__subtitle {
  color: #aeb6c9;
}
[data-theme=dark] .form-drawer__mark {
  background: rgba(139, 92, 246, 0.22);
  color: #c4b5fd;
}
[data-theme=dark] .form-drawer__close {
  color: #c9d0de;
}
[data-theme=dark] .form-drawer__close:hover {
  background: rgba(255, 255, 255, 0.08);
}
[data-theme=dark] .form-drawer__wave {
  opacity: 0.72;
}
[data-theme=dark] .form-drawer .p-drawer-content,
[data-theme=dark] .form-drawer .p-tabs {
  background: #12141c !important;
}
[data-theme=dark] .form-drawer .p-drawer-footer {
  background: rgba(18, 20, 28, 0.94);
  border-top-color: #2c3142;
}
[data-theme=dark] .form-drawer .p-drawer-content app-audit-meta {
  border-top-color: #2c3142 !important;
}
[data-theme=dark] .form-drawer .staff-form__block-head h3,
[data-theme=dark] .form-drawer .staff-form__step {
  color: #f4f6fb;
}
[data-theme=dark] .form-drawer .staff-form__step {
  background: rgba(139, 92, 246, 0.2);
  color: #c4b5fd;
}
[data-theme=dark] .form-drawer .staff-form__block-head p,
[data-theme=dark] .form-drawer .staff-form__hint {
  color: #8b93a7;
}
[data-theme=dark] .form-drawer .staff-form__block--split,
[data-theme=dark] .form-drawer .staff-form__field label,
[data-theme=dark] .form-drawer .form-field label,
[data-theme=dark] .form-drawer .form-field .form-field__label {
  color: #c5cedd;
}
[data-theme=dark] .form-drawer .staff-form__block--split {
  border-top-color: #2c3142;
}
[data-theme=dark] .form-drawer .staff-input > .pi,
[data-theme=dark] .form-drawer .staff-input__prefix,
[data-theme=dark] .form-drawer .p-select-dropdown,
[data-theme=dark] .form-drawer .p-datepicker-dropdown {
  color: #9aa4b8 !important;
}
[data-theme=dark] .form-drawer .staff-input:not(.staff-input--phone) .p-inputtext,
[data-theme=dark] .form-drawer .staff-input:not(.staff-input--phone) input.p-inputtext,
[data-theme=dark] .form-drawer .p-inputnumber-input,
[data-theme=dark] .form-drawer .p-datepicker-input,
[data-theme=dark] .form-drawer .staff-input--select .p-select,
[data-theme=dark] .form-drawer .staff-input--phone,
[data-theme=dark] .form-drawer .staff-input--phone .p-select,
[data-theme=dark] .form-drawer .staff-input--phone .phone-input__number {
  background: #1c2030 !important;
  color: #f4f6fb !important;
  border-color: #343a4d !important;
}
[data-theme=dark] .form-drawer .staff-input--phone .p-select,
[data-theme=dark] .form-drawer .staff-input--phone .phone-input__number {
  background: transparent !important;
  border-color: transparent !important;
}
[data-theme=dark] .form-drawer .p-select-label,
[data-theme=dark] .form-drawer .p-select-label span,
[data-theme=dark] .form-drawer .phone-input__selected {
  color: #f4f6fb !important;
}
[data-theme=dark] .form-drawer .staff-input .p-inputtext::placeholder,
[data-theme=dark] .form-drawer .p-select-label.p-placeholder,
[data-theme=dark] .form-drawer .phone-input__number::placeholder {
  color: #8b93a7 !important;
}
[data-theme=dark] .form-drawer .staff-input .p-inputtext:hover,
[data-theme=dark] .form-drawer .staff-input--select .p-select:hover,
[data-theme=dark] .form-drawer .staff-input--phone:hover,
[data-theme=dark] .form-drawer .p-inputnumber-input:hover,
[data-theme=dark] .form-drawer .p-datepicker-input:hover {
  border-color: #5b4db5 !important;
}
[data-theme=dark] .form-drawer .staff-status__option {
  background: #1c2030;
  border-color: #3d365c;
  color: #e6e9f2;
}
[data-theme=dark] .form-drawer .staff-status__dot--idle {
  background: #6b7288;
}
[data-theme=dark] .form-drawer__cancel {
  background: #1c2030;
  border-color: #3a4054;
  color: #e6e9f2;
}
[data-theme=dark] .form-drawer__cancel:hover {
  background: #262b3c;
}
.form-drawer .p-drawer-content .p-inputtext,
.form-drawer .p-drawer-content textarea.p-textarea,
.form-drawer .p-drawer-content .p-inputnumber-input,
.form-drawer .p-drawer-content .p-datepicker-input,
.form-drawer .p-drawer-content .p-select:not(.phone-input__country) {
  width: 100%;
  min-height: 38px;
  border: 1px solid #dfe3ec !important;
  border-radius: 9px !important;
  background: #fff !important;
  color: #283047 !important;
  font-size: 13.5px;
  box-shadow: none !important;
}
.form-drawer .p-drawer-content textarea.p-textarea {
  min-height: 72px;
  padding: 10px 12px;
}
.form-drawer .p-drawer-content .p-select:not(.phone-input__country) {
  display: flex;
  align-items: center;
}
.form-drawer .form-grid,
.form-drawer .branch-form__grid,
.form-drawer .structure-form__grid {
  gap: 12px;
}
[data-theme=dark] .form-drawer .p-drawer-content .p-inputtext,
[data-theme=dark] .form-drawer .p-drawer-content textarea.p-textarea,
[data-theme=dark] .form-drawer .p-drawer-content .p-inputnumber-input,
[data-theme=dark] .form-drawer .p-drawer-content .p-datepicker-input,
[data-theme=dark] .form-drawer .p-drawer-content .p-select:not(.phone-input__country) {
  background: #1c2030 !important;
  color: #f4f6fb !important;
  border-color: #343a4d !important;
}
.field-required {
  color: var(--danger, #dc2626);
  font-weight: 700;
}
label.required::after,
label[required]::after,
.form-label--required::after {
  content: " *";
  color: var(--danger, #dc2626);
  font-weight: 700;
}
.form-field label,
.form-field .form-field__label,
[class*=__field] label,
[class*=__field] .form-field__label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--text-muted);
}
app-form-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}
.p-drawer .p-multiselect,
.brand-drawer .p-multiselect {
  width: 100%;
}
.p-datatable .p-datatable-header,
.p-datatable .p-datatable-thead > tr > th {
  background: color-mix(in srgb, var(--surface-secondary) 88%, var(--primary-soft)) !important;
  color: var(--text-muted) !important;
  border-color: var(--border) !important;
  font-weight: 700;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  vertical-align: middle !important;
  padding-block: 0.9rem !important;
}
.p-datatable .p-datatable-tbody > tr {
  background: var(--surface) !important;
  color: var(--text-primary) !important;
  transition: background var(--transition-fast);
}
.p-datatable .p-datatable-tbody > tr > td {
  border: 0 none !important;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 85%, transparent) !important;
  padding-block: 0.9rem !important;
  vertical-align: middle !important;
}
.p-datatable .p-datatable-tbody > tr:hover > td {
  background: color-mix(in srgb, var(--primary) 5%, var(--surface)) !important;
}
.p-datatable .p-datatable-tbody > tr:last-child > td {
  border-bottom-color: transparent !important;
}
.p-datatable .p-datatable-footer {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}
.p-paginator,
.p-datatable .p-paginator,
.p-datatable-paginator-bottom,
.p-datatable-paginator-top {
  background: var(--surface) !important;
  color: var(--text-primary) !important;
  border: 0 !important;
}
.page__table-wrap .p-paginator.brand-paginator,
.page__table-wrap .brand-paginator.p-paginator {
  justify-content: flex-end !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  padding: 0.75rem 1rem !important;
  min-height: 3.25rem;
}
@media (max-width: 1023px) {
  .page__table-wrap .p-paginator.brand-paginator,
  .page__table-wrap .brand-paginator.p-paginator {
    row-gap: 0.5rem;
    padding: 0.85rem 0.85rem 1rem !important;
  }
}
@media (min-width: 768px) {
  .page__table-wrap .p-paginator.brand-paginator,
  .page__table-wrap .brand-paginator.p-paginator {
    padding: 0.75rem 1.25rem !important;
  }
}
.page__table-wrap .p-paginator-current {
  flex: 1 1 100%;
  margin-right: 0;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
  text-align: center;
}
@media (min-width: 768px) {
  .page__table-wrap .p-paginator-current {
    flex: 1 1 auto;
    margin-right: auto;
    font-size: 0.8125rem;
    text-align: left;
    white-space: nowrap;
  }
}
.page__table-wrap .p-paginator-rpp-dropdown {
  order: 10;
  margin-right: 0;
}
@media (min-width: 768px) {
  .page__table-wrap .p-paginator-rpp-dropdown {
    order: 0;
    margin-right: 0.35rem;
  }
}
.page__table-wrap .p-paginator-first,
.page__table-wrap .p-paginator-prev,
.page__table-wrap .p-paginator-pages,
.page__table-wrap .p-paginator-next,
.page__table-wrap .p-paginator-last {
  flex-shrink: 0;
}
.page__table-wrap .p-paginator-first,
.page__table-wrap .p-paginator-last {
  display: none;
}
@media (min-width: 768px) {
  .page__table-wrap .p-paginator-first,
  .page__table-wrap .p-paginator-last {
    display: inline-flex;
  }
}
.page__table-wrap .p-paginator-page,
.page__table-wrap .p-paginator-next,
.page__table-wrap .p-paginator-prev,
.page__table-wrap .p-paginator-first,
.page__table-wrap .p-paginator-last {
  color: var(--text-secondary) !important;
  min-width: 1.875rem;
  height: 1.875rem;
  border-radius: 999px !important;
  background: transparent !important;
  transition: background var(--transition-fast), color var(--transition-fast);
}
@media (min-width: 768px) {
  .page__table-wrap .p-paginator-page,
  .page__table-wrap .p-paginator-next,
  .page__table-wrap .p-paginator-prev,
  .page__table-wrap .p-paginator-first,
  .page__table-wrap .p-paginator-last {
    min-width: 2rem;
    height: 2rem;
  }
}
.page__table-wrap .p-paginator-page.p-paginator-page-selected,
.page__table-wrap .p-paginator-page.p-highlight,
.page__table-wrap .p-paginator-next.p-paginator-page-selected,
.page__table-wrap .p-paginator-next.p-highlight,
.page__table-wrap .p-paginator-prev.p-paginator-page-selected,
.page__table-wrap .p-paginator-prev.p-highlight,
.page__table-wrap .p-paginator-first.p-paginator-page-selected,
.page__table-wrap .p-paginator-first.p-highlight,
.page__table-wrap .p-paginator-last.p-paginator-page-selected,
.page__table-wrap .p-paginator-last.p-highlight {
  background-color: var(--primary) !important;
  background-image: var(--gradient-primary) !important;
  color: var(--primary-on, #fff) !important;
  font-weight: 600;
  box-shadow: var(--shadow-glow);
}
.page__table-wrap .p-paginator-page:not(.p-disabled):hover,
.page__table-wrap .p-paginator-next:not(.p-disabled):hover,
.page__table-wrap .p-paginator-prev:not(.p-disabled):hover,
.page__table-wrap .p-paginator-first:not(.p-disabled):hover,
.page__table-wrap .p-paginator-last:not(.p-disabled):hover {
  background: var(--primary-soft) !important;
  color: var(--primary) !important;
}
.page__table-wrap .p-paginator-rpp-dropdown .p-select,
.page__table-wrap .p-paginator-rpp-dropdown.p-select {
  min-height: 2rem;
  border-radius: 999px !important;
  font-size: 0.8125rem;
}
.p-paginator .p-paginator-page,
.p-paginator .p-paginator-next,
.p-paginator .p-paginator-prev,
.p-paginator .p-paginator-first,
.p-paginator .p-paginator-last {
  color: var(--text-muted) !important;
  min-width: 2.25rem;
  height: 2.25rem;
}
.p-paginator .p-paginator-page.p-paginator-page-selected,
.p-paginator .p-paginator-page.p-highlight,
.p-paginator .p-paginator-next.p-paginator-page-selected,
.p-paginator .p-paginator-next.p-highlight,
.p-paginator .p-paginator-prev.p-paginator-page-selected,
.p-paginator .p-paginator-prev.p-highlight,
.p-paginator .p-paginator-first.p-paginator-page-selected,
.p-paginator .p-paginator-first.p-highlight,
.p-paginator .p-paginator-last.p-paginator-page-selected,
.p-paginator .p-paginator-last.p-highlight {
  background-color: var(--primary) !important;
  background-image: var(--gradient-primary) !important;
  color: var(--primary-on, #fff) !important;
}
.p-paginator .p-paginator-page:not(.p-disabled):hover,
.p-paginator .p-paginator-next:not(.p-disabled):hover,
.p-paginator .p-paginator-prev:not(.p-disabled):hover,
.p-paginator .p-paginator-first:not(.p-disabled):hover,
.p-paginator .p-paginator-last:not(.p-disabled):hover {
  background: var(--primary-soft) !important;
  color: var(--text-primary) !important;
}
.p-inputtext,
.p-select,
.p-password,
.p-inputnumber-input,
.p-textarea {
  background: var(--surface) !important;
  border-color: var(--border-subtle, var(--border)) !important;
  color: var(--text-primary) !important;
  border-radius: var(--radius-control, var(--radius-md)) !important;
  min-height: var(--control-height);
  max-width: 100%;
  box-sizing: border-box;
  transition:
    border-color var(--transition-fast),
    box-shadow var(--transition-fast),
    background var(--transition-fast);
}
.p-datepicker.p-inputwrapper {
  display: inline-flex;
  align-items: stretch;
  width: 100%;
  min-height: var(--control-height);
  max-width: 100%;
  box-sizing: border-box;
  background: var(--surface) !important;
  border: 1px solid var(--border-subtle, var(--border)) !important;
  border-radius: var(--radius-control, var(--radius-md)) !important;
  box-shadow: none !important;
  overflow: hidden;
}
.p-datepicker.p-inputwrapper.p-focus,
.p-datepicker.p-inputwrapper.p-inputwrapper-focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 2px var(--primary-soft) !important;
}
.p-datepicker.p-inputwrapper .p-datepicker-input,
.p-datepicker.p-inputwrapper input.p-datepicker-input,
.p-datepicker.p-inputwrapper input.p-inputtext {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  min-height: calc(2.5rem - 2px);
}
.p-datepicker.p-inputwrapper .p-datepicker-input:enabled:focus,
.p-datepicker.p-inputwrapper input.p-inputtext:enabled:focus {
  border: none !important;
  box-shadow: none !important;
}
.p-datepicker.p-inputwrapper .p-datepicker-input-icon-container,
.p-datepicker.p-inputwrapper .p-datepicker-dropdown {
  display: inline-flex;
  align-items: center;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
}
.p-inputtext:enabled:focus,
.p-select:not(.p-disabled).p-focus,
.p-password:not(.p-disabled).p-focus {
  border-color: var(--primary) !important;
  box-shadow: var(--focus-ring) !important;
}
.p-button {
  font-family: var(--font-body);
  font-weight: 650;
  font-size: 0.8125rem;
  border-radius: var(--btn-radius, 8px) !important;
  min-height: var(--btn-height, 2.35rem);
  height: var(--btn-height, 2.35rem);
  padding: 0 var(--btn-padding-x, 0.9rem) !important;
  gap: 0.4rem;
  isolation: isolate;
  transition:
    background var(--transition-fast),
    border-color var(--transition-fast),
    box-shadow var(--transition-fast),
    filter var(--transition-fast),
    transform var(--transition-fast);
}
.p-button .p-button-icon {
  font-size: 0.85rem;
  margin: 0;
}
.p-button .p-button-label {
  font-weight: 650;
  line-height: 1.2;
}
.p-button:enabled:active {
  transform: translateY(1px);
}
p-button {
  display: inline-flex;
  vertical-align: middle;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.p-button:not(.p-button-text):not(.p-button-outlined):not(.p-button-secondary):not(.p-button-danger):not(.p-button-success):not(.p-button-warn):not(.p-button-help):not(.p-button-contrast) {
  background-color: var(--primary) !important;
  background-image: var(--gradient-primary) !important;
  border: none !important;
  color: var(--primary-on, #fff) !important;
  box-shadow: var(--shadow-xs);
}
.p-button:not(.p-button-text):not(.p-button-outlined):not(.p-button-secondary):not(.p-button-danger):not(.p-button-success):not(.p-button-warn):not(.p-button-help):not(.p-button-contrast):enabled:hover {
  filter: brightness(1.04);
  box-shadow: var(--shadow-sm);
}
.p-button:not(.p-button-text):not(.p-button-outlined):not(.p-button-secondary):not(.p-button-danger):not(.p-button-success):not(.p-button-warn):not(.p-button-help):not(.p-button-contrast):enabled:active {
  filter: brightness(0.98);
  box-shadow: var(--shadow-xs);
}
.p-button:not(.p-button-text):not(.p-button-outlined):not(.p-button-secondary):not(.p-button-danger):not(.p-button-success):not(.p-button-warn):not(.p-button-help):not(.p-button-contrast):disabled {
  opacity: 0.55;
  filter: none;
  box-shadow: none;
}
.p-button.p-button-outlined {
  background: var(--surface) !important;
  border: 1px solid var(--border-subtle, var(--border)) !important;
  color: var(--text-secondary) !important;
  box-shadow: none;
}
.p-button.p-button-outlined:enabled:hover {
  background: var(--primary-soft) !important;
  border-color: color-mix(in srgb, var(--primary) 28%, var(--border)) !important;
  color: var(--primary) !important;
}
.p-button.p-button-secondary:not(.p-button-text):not(.p-button-outlined) {
  background: color-mix(in srgb, var(--surface-secondary) 80%, var(--primary-soft)) !important;
  border: 1px solid transparent !important;
  color: var(--text-primary) !important;
  box-shadow: none !important;
}
.p-button.p-button-secondary:not(.p-button-text):not(.p-button-outlined):enabled:hover {
  background: var(--primary-soft) !important;
  color: var(--primary) !important;
}
.p-button.p-button-text,
.p-button.p-button-secondary.p-button-text {
  color: var(--text-muted) !important;
  min-height: var(--btn-height-sm, 1.95rem);
  height: var(--btn-height-sm, 1.95rem);
  padding: 0 0.7rem !important;
  box-shadow: none !important;
}
.p-button.p-button-text:enabled:hover,
.p-button.p-button-secondary.p-button-text:enabled:hover {
  background: color-mix(in srgb, var(--primary) 8%, var(--surface-secondary)) !important;
  color: var(--primary) !important;
}
.p-button.p-button-rounded.p-button-text,
.p-button.p-button-icon-only.p-button-text {
  width: var(--btn-height-sm, 1.95rem) !important;
  height: var(--btn-height-sm, 1.95rem) !important;
  min-width: var(--btn-height-sm, 1.95rem) !important;
  min-height: var(--btn-height-sm, 1.95rem) !important;
  padding: 0 !important;
}
.p-button.p-button-sm {
  min-height: var(--btn-height-sm, 1.95rem);
  height: var(--btn-height-sm, 1.95rem);
  padding: 0 0.7rem !important;
  font-size: 0.78rem;
}
.p-button.p-button-danger:not(.p-button-text):not(.p-button-outlined) {
  background-color: var(--danger) !important;
  background-image: var(--gradient-accent) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: var(--shadow-xs);
}
.p-tag {
  font-weight: 650;
  border-radius: var(--radius-pill) !important;
  padding-inline: 0.55rem !important;
  overflow: hidden;
  isolation: isolate;
}
.p-tabs .p-tablist,
.p-tablist {
  width: fit-content;
  max-width: 100%;
  padding: 0.22rem;
  gap: 0.15rem;
  border: 0 !important;
  border-radius: 11px;
  background: color-mix(in srgb, var(--surface-secondary) 78%, var(--surface));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--border) 55%, transparent);
}
.p-tabs .p-tablist-tab-list,
.p-tablist-tab-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.p-tabs .p-tab,
.p-tab {
  position: relative;
  min-height: var(--btn-height-sm, 1.95rem);
  padding: 0.5rem 0.95rem !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: var(--text-muted) !important;
  font-weight: 650;
  font-size: 0.8125rem;
  box-shadow: none !important;
  transition:
    background var(--transition-fast),
    color var(--transition-fast),
    box-shadow var(--transition-fast);
}
.p-tabs .p-tab:hover,
.p-tab:hover {
  background: color-mix(in srgb, var(--primary-soft) 45%, transparent) !important;
  color: var(--text-primary) !important;
}
.p-tabs .p-tab::after,
.p-tabs .p-tab::before,
.p-tab::after,
.p-tab::before {
  display: none !important;
}
.p-tabs .p-tab-active,
.p-tab-active,
.p-tabs .p-tab[aria-selected=true],
.p-tab[aria-selected=true] {
  background: color-mix(in srgb, var(--primary-soft) 78%, var(--surface)) !important;
  color: var(--primary) !important;
  box-shadow: var(--shadow-xs) !important;
}
.p-tabs .p-tablist-active-bar,
.p-tablist-active-bar {
  display: none !important;
}
.p-tabs .p-tabpanels,
.p-tabpanels {
  padding: 0.75rem 0 0;
  background: transparent !important;
  border: 0 !important;
}
.p-message {
  width: 100%;
  border-radius: 12px !important;
  border: 1px solid var(--border) !important;
  border-left-width: 4px !important;
  background: var(--surface) !important;
  color: var(--text-primary) !important;
  box-shadow: none !important;
}
.p-message .p-message-text {
  color: var(--text-secondary) !important;
  font-weight: 500;
}
.p-message-error,
.p-message.p-message-error {
  border-left-color: var(--danger) !important;
  background: var(--danger-soft) !important;
}
.p-message-success,
.p-message.p-message-success {
  border-left-color: var(--success) !important;
  background: var(--success-soft) !important;
}
.p-message-warn,
.p-message.p-message-warn {
  border-left-color: var(--warning) !important;
  background: var(--warning-soft) !important;
}
.p-message-info,
.p-message.p-message-info {
  border-left-color: var(--primary) !important;
  background: var(--primary-soft) !important;
}
.p-progressbar {
  height: 2px !important;
  background: var(--surface-secondary) !important;
}
.p-progressbar .p-progressbar-value {
  background: var(--primary) !important;
}
.p-skeleton {
  background: color-mix(in srgb, var(--primary) 9%, var(--surface-secondary)) !important;
  border-radius: 10px !important;
}
.p-skeleton::after {
  background:
    linear-gradient(
      110deg,
      transparent 10%,
      color-mix(in srgb, var(--primary) 28%, transparent) 42%,
      color-mix(in srgb, #fff 35%, transparent) 50%,
      color-mix(in srgb, var(--primary) 28%, transparent) 58%,
      transparent 90%) !important;
}
.p-datatable-mask,
.p-datatable .p-datatable-mask {
  display: none !important;
}
.p-select-overlay,
.p-datepicker-panel,
.p-popover,
.p-tieredmenu,
.p-menu {
  background: var(--surface-elevated) !important;
  border: 1px solid var(--border) !important;
  color: var(--text-primary) !important;
  box-shadow: var(--shadow-lg) !important;
  border-radius: var(--radius-lg) !important;
  overflow: hidden;
}
.p-menu .p-menu-item-link,
.p-tieredmenu .p-menuitem-link {
  border-radius: var(--radius-md);
  margin-inline: 0.35rem;
  transition: background var(--transition-fast);
}
.p-menu .p-menu-item-link:hover,
.p-tieredmenu .p-menuitem-link:hover {
  background: var(--primary-soft) !important;
}
.p-select-overlay .p-select-option {
  border-radius: var(--radius-sm);
  margin-inline: 0.25rem;
}
.p-dialog.app-confirm-dialog .p-dialog-header,
.p-dialog.app-confirm-dialog .p-dialog-content,
.p-dialog.app-confirm-dialog .p-dialog-footer,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-header,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-content,
.p-dialog.p-confirmdialog.app-confirm-dialog .p-dialog-footer {
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
  box-shadow: none !important;
}
.app-toast.p-toast,
.p-toast.app-toast {
  width: min(22.5rem, 100vw - 1.5rem);
  max-width: calc(100vw - 1.5rem);
}
@media (max-width: 767px) {
  .app-toast.p-toast,
  .p-toast.app-toast {
    left: 0.75rem !important;
    right: 0.75rem !important;
    top: 0.75rem !important;
    width: auto !important;
    max-width: none;
  }
}
.p-toast .p-toast-message {
  margin: 0 0 0.75rem;
  overflow: hidden;
  border-radius: 14px !important;
  border: 1px solid var(--border) !important;
  border-left-width: 4px !important;
  background: var(--surface-elevated) !important;
  color: var(--text-primary) !important;
  box-shadow: var(--shadow-md) !important;
}
.p-toast .p-toast-message-content {
  padding: 0.9rem 0.85rem !important;
  gap: 0.75rem !important;
  align-items: flex-start;
}
.p-toast .p-toast-message-text {
  color: var(--text-primary) !important;
}
.p-toast .p-toast-message-icon {
  width: 2rem !important;
  height: 2rem !important;
  margin-top: 0.1rem;
  border-radius: 999px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem !important;
  flex-shrink: 0;
}
.p-toast .p-toast-summary {
  font-weight: 700 !important;
  font-size: 0.875rem !important;
  line-height: 1.35 !important;
  color: var(--text-primary) !important;
}
.p-toast .p-toast-detail {
  margin: 0.2rem 0 0 !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  color: var(--text-secondary) !important;
  line-height: 1.45 !important;
  opacity: 1 !important;
}
.p-toast .p-toast-close-button {
  margin: 0 !important;
  right: 0 !important;
  color: var(--text-muted) !important;
}
.p-toast .p-toast-message-success {
  border-left-color: var(--success) !important;
  background: color-mix(in srgb, var(--success-soft) 55%, var(--surface-elevated)) !important;
}
.p-toast .p-toast-message-success .p-toast-message-icon {
  background: var(--success-soft);
  color: var(--success) !important;
}
.p-toast .p-toast-message-error {
  border-left-color: var(--danger) !important;
  background: color-mix(in srgb, var(--danger-soft) 55%, var(--surface-elevated)) !important;
}
.p-toast .p-toast-message-error .p-toast-message-icon {
  background: var(--danger-soft);
  color: var(--danger) !important;
}
.p-toast .p-toast-message-warn {
  border-left-color: var(--warning) !important;
  background: color-mix(in srgb, var(--warning-soft) 55%, var(--surface-elevated)) !important;
}
.p-toast .p-toast-message-warn .p-toast-message-icon {
  background: var(--warning-soft);
  color: var(--warning) !important;
}
.p-toast .p-toast-message-info {
  border-left-color: var(--primary) !important;
  background: color-mix(in srgb, var(--primary-soft) 65%, var(--surface-elevated)) !important;
}
.p-toast .p-toast-message-info .p-toast-message-icon {
  background: var(--primary-soft);
  color: var(--primary) !important;
}
.p-tooltip {
  z-index: 1100 !important;
}
.p-overlay:has(.p-select-overlay:not(.phone-input__country-panel)) {
  overflow: hidden;
}
.p-select-overlay:not(.phone-input__country-panel) {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.p-select-overlay:not(.phone-input__country-panel) .p-select-header,
.p-select-overlay:not(.phone-input__country-panel) .p-iconfield,
.p-select-overlay:not(.phone-input__country-panel) .p-select-filter,
.p-select-overlay:not(.phone-input__country-panel) .p-select-list-container {
  min-width: 0;
  max-width: 100%;
}
.p-select-overlay:not(.phone-input__country-panel) .p-select-header,
.p-select-overlay:not(.phone-input__country-panel) .p-iconfield,
.p-select-overlay:not(.phone-input__country-panel) .p-select-filter,
.p-select-overlay:not(.phone-input__country-panel) .p-select-header input {
  width: 100%;
}
.p-select-overlay:not(.phone-input__country-panel) .p-select-list-container {
  overflow-x: hidden;
}
.p-select-overlay:not(.phone-input__country-panel) .p-select-option {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.p-overlay:has(.phone-input__country-panel) {
  min-width: 18rem !important;
  width: auto !important;
}
.phone-input__country-panel.p-select-overlay,
.p-select-overlay.phone-input__country-panel {
  min-width: 18rem !important;
  width: auto !important;
}
.phone-input > p-select,
p-select.phone-input__country {
  width: 4.75rem !important;
  min-width: 4.75rem !important;
  max-width: 4.75rem !important;
  flex: 0 0 4.75rem;
}
.page__toolbar,
.filters,
.tab-toolbar,
.stage-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3);
  margin-bottom: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface) 92%, var(--primary-soft));
  box-shadow: var(--shadow-sm);
}
.page__table-wrap {
  background: var(--surface);
  border: 1px solid color-mix(in srgb, var(--border) 88%, var(--primary));
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  overflow: hidden;
}
.page__row--click {
  transition: background var(--transition-fast);
}
.page__row--click:hover > td {
  background: color-mix(in srgb, var(--primary) 5%, var(--surface)) !important;
}
.kpi-strip,
.stage-kpis {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
}
.kpi-card,
.stage-kpi {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition:
    border-color var(--transition-fast),
    box-shadow var(--transition-base),
    transform var(--transition-base),
    background var(--transition-fast);
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: var(--space-4);
  text-align: left;
  cursor: pointer;
  border: 1px solid var(--border);
  background: var(--surface);
  color: inherit;
  font: inherit;
}
.kpi-card:hover,
.stage-kpi:hover {
  border-color: color-mix(in srgb, var(--primary) 24%, var(--border));
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}
.kpi-card--active,
.kpi-card.is-active,
.stage-kpi--active,
.stage-kpi.is-active {
  border-color: color-mix(in srgb, var(--primary) 40%, var(--border));
  background: var(--primary-soft);
  box-shadow: var(--shadow-glow);
}
.tab-toolbar {
  align-items: center;
}
.page__toolbar {
  align-items: stretch;
}
.page__toolbar input.p-inputtext,
.page__toolbar input[type=search] {
  flex: 1 1 14rem;
  min-width: 0;
  border-radius: var(--radius-control, var(--radius-md)) !important;
  background: var(--surface) !important;
  min-height: var(--control-height);
}
.page__toolbar > .p-button,
.page__toolbar > p-button .p-button {
  min-height: var(--btn-height, 2.35rem);
}
.attendance-field label,
.staff-scan > label,
.time-mode__label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.attendance-field .p-select,
.attendance-field .p-datepicker,
.attendance-field .p-datepicker.p-inputwrapper,
.attendance-field app-date-field,
.attendance-field app-date-field .p-datepicker,
.staff-scan .p-select,
.staff-scan .p-datepicker,
.staff-scan .p-datepicker.p-inputwrapper,
.staff-scan app-date-field,
.staff-scan app-date-field .p-datepicker {
  width: 100%;
}
.attendance-field .p-select,
.attendance-field .p-datepicker.p-inputwrapper,
.staff-scan .p-select,
.staff-scan .p-datepicker.p-inputwrapper {
  min-height: 2.35rem;
  border-radius: 10px !important;
  border-color: var(--border-subtle, var(--border)) !important;
  background: var(--surface) !important;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.attendance-field .p-select:hover:not(.p-disabled),
.attendance-field .p-datepicker.p-inputwrapper:hover:not(.p-disabled),
.staff-scan .p-select:hover:not(.p-disabled),
.staff-scan .p-datepicker.p-inputwrapper:hover:not(.p-disabled) {
  border-color: color-mix(in srgb, var(--primary) 22%, var(--border)) !important;
}
.attendance-field .p-select.p-focus,
.attendance-field .p-select.p-inputwrapper-focus,
.attendance-field .p-datepicker.p-inputwrapper.p-focus,
.attendance-field .p-datepicker.p-inputwrapper.p-inputwrapper-focus,
.staff-scan .p-select.p-focus,
.staff-scan .p-select.p-inputwrapper-focus,
.staff-scan .p-datepicker.p-inputwrapper.p-focus,
.staff-scan .p-datepicker.p-inputwrapper.p-inputwrapper-focus {
  border-color: color-mix(in srgb, var(--primary) 48%, var(--border)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent) !important;
}
.attendance-field .p-select .p-select-label,
.attendance-field .p-datepicker-input,
.attendance-field .p-datepicker .p-inputtext,
.staff-scan .p-select .p-select-label,
.staff-scan .p-datepicker-input,
.staff-scan .p-datepicker .p-inputtext {
  min-height: calc(2.35rem - 2px);
}
.attendance-scan,
.staff-scan__row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  width: 100%;
  max-width: 100%;
  height: 2.35rem;
  min-height: 2.35rem;
  max-height: 2.35rem;
  gap: 0.2rem;
  padding: 0 0.15rem 0 0.55rem;
  border: 1px solid var(--border-subtle, var(--border));
  border-radius: 10px;
  background: var(--surface);
  box-sizing: border-box;
  overflow: hidden;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.attendance-scan:hover,
.staff-scan__row:hover {
  border-color: color-mix(in srgb, var(--primary) 22%, var(--border));
}
.attendance-scan:focus-within,
.staff-scan__row:focus-within {
  border-color: color-mix(in srgb, var(--primary) 48%, var(--border));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent);
}
.attendance-scan > p-autocomplete,
.staff-scan__row > p-autocomplete {
  flex: 1 1 auto;
  min-width: 0;
  width: auto !important;
  display: block !important;
  height: 100%;
}
.attendance-scan .p-autocomplete,
.staff-scan__row .p-autocomplete {
  display: flex !important;
  width: 100% !important;
  height: 100%;
  min-width: 0;
  align-items: center;
}
.attendance-scan .p-autocomplete-input,
.attendance-scan .p-autocomplete .p-inputtext,
.staff-scan__row .p-autocomplete-input,
.staff-scan__row .p-autocomplete .p-inputtext {
  flex: 1 1 auto;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  padding: 0 0.45rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 0.875rem !important;
  line-height: 1.25 !important;
}
.attendance-scan .p-autocomplete-input:enabled:focus,
.attendance-scan .p-autocomplete .p-inputtext:enabled:focus,
.staff-scan__row .p-autocomplete-input:enabled:focus,
.staff-scan__row .p-autocomplete .p-inputtext:enabled:focus {
  border: 0 !important;
  box-shadow: none !important;
}
.attendance-scan > p-button,
.staff-scan__row > p-button {
  flex: 0 0 auto;
  display: inline-flex !important;
  align-items: center;
  margin: 0 !important;
  height: 1.95rem;
}
.attendance-scan .p-button,
.staff-scan__row .p-button {
  width: auto !important;
  height: 1.95rem !important;
  min-height: 1.95rem !important;
  max-height: 1.95rem !important;
  margin: 0 !important;
  padding: 0 0.7rem !important;
  border: 0 !important;
  border-radius: 8px !important;
  font-weight: 650;
  gap: 0.35rem;
  background-color: var(--primary) !important;
  background-image: var(--gradient-primary) !important;
  color: var(--primary-on, #fff) !important;
  box-shadow: var(--shadow-xs);
  transition: box-shadow var(--transition-fast), filter var(--transition-fast);
}
.attendance-scan .p-button:enabled:hover,
.staff-scan__row .p-button:enabled:hover {
  filter: brightness(1.04);
  box-shadow: var(--shadow-sm);
}
.attendance-scan .p-button:enabled:active,
.staff-scan__row .p-button:enabled:active {
  filter: brightness(0.98);
}
.attendance-scan .p-button:disabled,
.staff-scan__row .p-button:disabled {
  opacity: 0.55;
  filter: none;
  box-shadow: none;
}
.attendance-scan .p-button .p-button-icon,
.staff-scan__row .p-button .p-button-icon {
  font-size: 0.8rem;
  margin: 0;
}
.attendance-scan .p-button .p-button-label,
.staff-scan__row .p-button .p-button-label {
  font-size: 0.8125rem;
  font-weight: 650;
  white-space: nowrap;
}
.time-mode {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}
.time-mode__options {
  display: inline-flex;
  height: 2.35rem;
  padding: 0.15rem;
  gap: 0.15rem;
  border: 1px solid var(--border-subtle, var(--border));
  border-radius: 10px;
  background: var(--surface);
  box-sizing: border-box;
}
.time-mode__option {
  flex: 1 1 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0 0.75rem;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--text-muted);
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 650;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}
.time-mode__option:hover:not(.time-mode__option--active) {
  color: var(--text);
  background: color-mix(in srgb, var(--primary) 8%, transparent);
}
.time-mode__option:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--primary) 55%, transparent);
  outline-offset: 1px;
}
.time-mode__option .pi {
  font-size: 0.75rem;
}
.time-mode__option--active {
  background-color: var(--primary);
  background-image: var(--gradient-primary);
  color: var(--primary-on, #fff);
  box-shadow: var(--shadow-xs);
}
.time-mode__hint {
  margin: 0;
  font-size: var(--font-size-sm);
  color: var(--text-muted);
}
.visit-manual {
  margin-left: 0.3rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 650;
  color: var(--color-warning);
  background: color-mix(in srgb, var(--color-warning) 12%, transparent);
}
[data-theme=dark] .time-mode__options {
  background: var(--surface-elevated);
  border-color: var(--border);
}
.staff-scan__row .staff-scan__instrument {
  flex: 0 0 1.35rem;
  width: 1.35rem !important;
  height: 1.55rem !important;
  max-height: 1.55rem;
  margin: 0 0.1rem 0 0.15rem;
  object-fit: contain;
  align-self: center;
}
@media (max-width: 767px) {
  .attendance-scan,
  .staff-scan__row {
    flex-wrap: wrap;
    height: auto;
    max-height: none;
    min-height: 2.35rem;
    padding: 0.25rem;
  }
  .attendance-scan > p-autocomplete,
  .staff-scan__row > p-autocomplete {
    flex: 1 1 100%;
    min-height: 2rem;
  }
  .attendance-scan > p-button,
  .attendance-scan .p-button,
  .staff-scan__row > p-button,
  .staff-scan__row .p-button {
    width: 100% !important;
    height: 1.95rem !important;
    min-height: 1.95rem !important;
    justify-content: center;
  }
}
[data-theme=dark] .attendance-scan,
[data-theme=dark] .staff-scan__row {
  background: var(--surface-elevated);
  border-color: var(--border);
}
.list-search-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.65rem;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.list-search {
  display: flex;
  align-items: center;
  flex: 1 1 16rem;
  min-width: 0;
  min-height: var(--control-height, 2.35rem);
  padding: 0 0.2rem 0 0.7rem;
  border: 1px solid var(--border-subtle, var(--border));
  border-radius: 10px;
  background: var(--surface);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.list-search:hover {
  border-color: color-mix(in srgb, var(--primary) 22%, var(--border));
}
.list-search:focus-within {
  border-color: color-mix(in srgb, var(--primary) 48%, var(--border));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent);
}
.list-search:focus-within .list-search__icon {
  color: var(--primary);
}
.list-search__icon {
  flex-shrink: 0;
  font-size: 0.82rem;
  color: var(--text-muted);
  pointer-events: none;
}
.list-search__input.p-inputtext,
.list-search input.p-inputtext {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  min-height: 2.15rem !important;
  margin: 0;
  padding: 0.35rem 0.55rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 0.875rem;
}
.list-search__input.p-inputtext:enabled:focus,
.list-search input.p-inputtext:enabled:focus {
  border: 0 !important;
  box-shadow: none !important;
}
.list-search__btn.p-button,
.list-search .list-search__btn.p-button {
  flex-shrink: 0;
  min-height: var(--btn-height-sm, 1.95rem) !important;
  height: var(--btn-height-sm, 1.95rem) !important;
  margin: 0.15rem;
  padding: 0 0.7rem !important;
  border: 0 !important;
  border-radius: var(--btn-radius, 8px) !important;
  background: color-mix(in srgb, var(--primary-soft) 70%, transparent) !important;
  background-image: none !important;
  color: var(--primary) !important;
  font-weight: 650;
  font-size: 0.8125rem;
  box-shadow: none !important;
}
.list-search__btn.p-button:enabled:hover,
.list-search .list-search__btn.p-button:enabled:hover {
  background: var(--primary-soft) !important;
  color: var(--primary) !important;
  filter: none;
  box-shadow: none !important;
}
.list-search-toolbar .list-search__clear.p-button {
  min-height: 2.1rem !important;
  font-size: 0.78rem;
}
[data-theme=dark] .list-search {
  background: var(--surface-elevated);
  border-color: var(--border);
}
.reports-page {
  position: relative;
}
.reports-page--dashboard {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-height: 0;
}
.reports-page__hero {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  flex-shrink: 0;
}
.reports-page__hero-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}
.reports-page__hero-copy {
  min-width: 0;
  position: relative;
  padding-left: 0.75rem;
}
.reports-page__hero-copy::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.1rem;
  bottom: 0.1rem;
  width: 3px;
  border-radius: var(--radius-pill);
  background:
    linear-gradient(
      180deg,
      var(--primary),
      color-mix(in srgb, var(--info) 70%, var(--primary)));
}
.reports-page__hero-copy h1 {
  margin: 0;
  font-size: 1.45rem;
  font-weight: 750;
  letter-spacing: -0.02em;
  color: var(--color-text);
}
.reports-page__hero-copy p {
  margin: 0.2rem 0 0;
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  line-height: 1.4;
}
.reports-page__hero-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
  justify-content: flex-end;
}
.reports-page__period {
  min-width: 10.5rem;
}
.reports-page__period.p-select,
.reports-page__period .p-select {
  width: 100%;
  min-width: 10.5rem;
}
.reports-page__custom-dates {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: flex-end;
}
.reports-page__range {
  margin: 0;
  padding: 0.4rem var(--space-3);
  border: 1px solid color-mix(in srgb, var(--primary) 22%, var(--color-border));
  border-radius: var(--radius-pill);
  background: var(--surface);
  color: var(--color-text-muted);
  font-size: var(--font-size-caption);
  font-weight: 650;
  white-space: nowrap;
}
.reports-page__date {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 8rem;
}
.reports-page__date span {
  font-size: var(--font-size-caption);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.reports-page__date app-date-field,
.reports-page__date .p-datepicker.p-inputwrapper {
  width: 100%;
  min-width: 8.5rem;
}
.reports-page__dashboard {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-height: 0;
}
.reports-page__kpis {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: var(--space-2);
  flex-shrink: 0;
}
@media (max-width: 1279px) {
  .reports-page__kpis {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .reports-page__kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.reports-page__charts-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: 1fr;
}
@media (min-width: 1024px) {
  .reports-page__charts-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-areas: "attendance branch courses" "trend trend links";
  }
}
@media (min-width: 1024px) {
  .reports-page__charts-grid--basic {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    grid-template-areas: "attendance links" "attendance links";
  }
}
.reports-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-3);
  border: 1px solid color-mix(in srgb, var(--color-border) 90%, var(--color-primary));
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}
@media (min-width: 1024px) {
  .reports-card--attendance {
    grid-area: attendance;
  }
}
@media (min-width: 1024px) {
  .reports-card--branch {
    grid-area: branch;
  }
}
.reports-card--branch .reports-card__stats--compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.reports-card--branch .reports-card__stats--compact strong {
  font-size: 0.72rem;
}
@media (min-width: 1024px) {
  .reports-card--courses {
    grid-area: courses;
  }
}
.reports-card--trend {
  align-self: start;
}
@media (min-width: 1024px) {
  .reports-card--trend {
    grid-area: trend;
  }
}
.reports-card--trend .reports-card__chart--line {
  display: flex;
  flex-direction: column;
  height: 10.5rem;
  min-height: 10.5rem;
  max-height: 10.5rem;
  flex: 0 0 10.5rem;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .reports-card--links {
    grid-area: links;
  }
}
.reports-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-2);
  flex-shrink: 0;
}
.reports-card__header h2 {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 750;
  letter-spacing: -0.01em;
}
.reports-card__header p {
  margin: 0.15rem 0 0;
  font-size: var(--font-size-caption);
  color: var(--color-text-muted);
  line-height: 1.35;
}
.reports-card__link {
  font-size: var(--font-size-caption);
  font-weight: 650;
  color: var(--primary);
  text-decoration: none;
  white-space: nowrap;
}
.reports-card__link:hover {
  text-decoration: underline;
}
.reports-card__donut-layout {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 8rem;
}
.reports-card__donut-chart {
  position: relative;
  width: 8rem;
  height: 8rem;
  flex: 0 0 8rem;
}
.reports-card__donut-ring {
  position: relative;
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  background: conic-gradient(var(--success) 0 calc(var(--present-pct, 0) * 1%), color-mix(in srgb, var(--color-border) 70%, var(--color-text-muted)) calc(var(--present-pct, 0) * 1%) 100%);
}
.reports-card__donut-ring::after {
  content: "";
  position: absolute;
  inset: 1.12rem;
  border-radius: 50%;
  background: var(--surface);
}
.reports-card__donut-center {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-content: center;
  text-align: center;
  pointer-events: none;
}
.reports-card__donut-center strong {
  font-size: 1.4rem;
  font-weight: 800;
  line-height: 1;
}
.reports-card__donut-center span {
  margin-top: 0.15rem;
  font-size: 0.62rem;
  color: var(--color-text-muted);
  text-transform: uppercase;
  font-weight: 700;
}
.reports-card__donut-legend {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  flex: 1;
  min-width: 0;
}
.reports-card__donut-legend li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  font-size: var(--font-size-caption);
  line-height: 1.35;
}
.reports-card__legend-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  margin-top: 0.2rem;
  flex-shrink: 0;
}
.reports-card__legend-dot--present {
  background: var(--success);
}
.reports-card__legend-dot--absent {
  background: color-mix(in srgb, var(--color-border) 70%, var(--color-text-muted));
}
.reports-card__chart {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.reports-card__chart--bar {
  height: 10.5rem;
  min-height: 10.5rem;
  max-height: 10.5rem;
}
.reports-card__chart--line {
  display: flex;
  flex-direction: column;
  height: 9.5rem;
  min-height: 9.5rem;
  max-height: 9.5rem;
}
.reports-card__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
  padding-top: var(--space-2);
  margin-top: auto;
  border-top: 1px solid color-mix(in srgb, var(--color-border) 85%, transparent);
}
.reports-card__stats--four {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 768px) {
  .reports-card__stats--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.reports-card__stats strong {
  font-size: 0.82rem;
  font-weight: 750;
}
.reports-card__stat-label {
  display: block;
  font-size: 0.62rem;
  color: var(--color-text-muted);
  text-transform: uppercase;
  font-weight: 650;
  margin-bottom: 0.1rem;
}
.reports-bars {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  gap: 0.25rem;
}
.reports-bars__legend {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-3);
  font-size: 0.62rem;
  font-weight: 650;
  color: var(--color-text);
  flex-shrink: 0;
}
.reports-bars__legend span {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
.reports-bars__swatch {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
}
.reports-bars__swatch--invoiced {
  background: var(--primary);
}
.reports-bars__swatch--collected {
  background: var(--success);
}
.reports-bars__plot {
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  gap: 0.35rem;
  flex: 1;
  min-height: 0;
  min-width: 0;
}
.reports-bars__col {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  min-width: 0;
  max-width: 3.5rem;
}
.reports-bars__pair {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.2rem;
  flex: 1;
  width: 100%;
  min-height: 0;
}
.reports-bars__bar {
  display: block;
  width: 0.7rem;
  min-height: 0.2rem;
  border-radius: 6px 6px 2px 2px;
}
.reports-bars__bar--invoiced {
  background: var(--primary);
}
.reports-bars__bar--collected {
  background: var(--success);
}
.reports-bars__label {
  margin-top: 0.25rem;
  font-size: 0.56rem;
  font-weight: 650;
  color: var(--color-text-muted);
  text-align: center;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.reports-trend {
  display: block;
  width: 100%;
  flex: 1;
  min-height: 0;
}
.reports-trend__area {
  fill: color-mix(in srgb, var(--primary) 16%, transparent);
}
.reports-trend__line {
  fill: none;
  stroke: var(--primary);
  stroke-width: 2.25;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.reports-trend__labels {
  display: flex;
  justify-content: space-between;
  gap: 0.15rem;
  flex-shrink: 0;
  padding: 0 0.15rem;
  font-size: 0.56rem;
  font-weight: 650;
  color: var(--color-text-muted);
}
.reports-trend__labels span {
  flex: 1;
  min-width: 0;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.reports-rank {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  flex: 1;
}
.reports-rank__meta {
  display: flex;
  justify-content: space-between;
  gap: var(--space-2);
  font-size: var(--font-size-caption);
}
.reports-rank__meta strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 650;
}
.reports-rank__meta span {
  font-weight: 700;
  white-space: nowrap;
}
.reports-rank__track {
  height: 0.35rem;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--color-border) 75%, transparent);
  overflow: hidden;
}
.reports-rank__fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background:
    linear-gradient(
      90deg,
      var(--primary),
      color-mix(in srgb, var(--primary) 65%, var(--success)));
}
.reports-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
}
.reports-links__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 3.85rem;
  padding: var(--space-2);
  border: 1px solid color-mix(in srgb, var(--color-border) 88%, transparent);
  border-radius: var(--radius-lg);
  background: var(--surface);
  color: var(--color-text);
  text-decoration: none;
  font-size: var(--font-size-caption);
  font-weight: 650;
  text-align: center;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.reports-links__item i {
  font-size: 1.15rem;
}
.reports-links__item:hover {
  box-shadow: var(--shadow-sm);
}
.reports-links__item--success i {
  color: var(--success);
}
.reports-links__item--warning i {
  color: var(--warning);
}
.reports-links__item--info i {
  color: var(--info, #0ea5e9);
}
.reports-links__item--primary i {
  color: var(--primary);
}
.reports-links__item--danger i {
  color: var(--danger);
}
.reports-links__item--teal i {
  color: #14b8a6;
}
.reports-page__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding-top: var(--space-2);
  border-top: 1px solid color-mix(in srgb, var(--color-border) 85%, transparent);
}
.reports-page__footnote,
.reports-page__footer-meta {
  margin: 0;
  font-size: var(--font-size-caption);
  color: var(--color-text-muted);
}
.reports-page__footer-meta {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.reports-page__refresh {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 0;
  background: transparent;
  color: var(--primary);
  font-size: var(--font-size-caption);
  font-weight: 650;
  cursor: pointer;
  padding: 0;
}
.reports-page__refresh:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.reports-page__refresh:hover:not(:disabled) {
  text-decoration: underline;
}
.reports-page__export-fab {
  position: fixed;
  right: var(--space-4);
  bottom: calc(var(--app-bottom-nav-clearance, 4.5rem) + var(--space-3));
  z-index: calc(var(--z-overlay) - 1);
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 0.75rem 1.1rem;
  border: none;
  border-radius: var(--radius-pill);
  background: var(--primary);
  color: #fff;
  font-size: var(--font-size-sm);
  font-weight: 750;
  cursor: pointer;
  box-shadow: var(--shadow-glow, 0 10px 24px color-mix(in srgb, var(--primary) 35%, transparent));
}
@media (min-width: 1024px) {
  .reports-page__export-fab {
    right: var(--space-5);
    bottom: var(--space-4);
  }
}
@media (max-width: 1023px) {
  .reports-page__hero-filters {
    width: 100%;
    justify-content: flex-start;
  }
  .reports-page__period {
    flex: 1 1 100%;
  }
  .reports-page__custom-dates {
    width: 100%;
  }
  .reports-page__date {
    flex: 1 1 calc(50% - var(--space-2));
  }
  .reports-page__date input {
    width: 100%;
  }
}
.login-page,
.change-password-page,
.platform-login,
.platform-onboarding-drawer {
  --background: #090716;
  --surface: #110d20;
  --surface-secondary: #171126;
  --surface-muted: #171126;
  --border: #332a49;
  --text-primary: #f8fafc;
  --text-secondary: #d6d1e2;
  --text-muted: #a59db8;
  --primary-soft: rgba(139, 92, 246, 0.2);
  --p-form-field-background: #171126;
  --p-form-field-color: #f8fafc;
  --p-form-field-border-color: #3a3052;
  --p-form-field-placeholder-color: #817990;
  color-scheme: dark;
}
.login-page input.p-inputtext,
.change-password-page input.p-inputtext,
.platform-login input.p-inputtext,
.platform-onboarding-drawer input.p-inputtext {
  border-color: #3a3052 !important;
  background: #171126 !important;
  color: #f8fafc !important;
}
.platform-onboarding-drawer .p-drawer-header,
.platform-onboarding-drawer .p-drawer-content {
  background: #110d20;
  color: #f8fafc;
}
.login-stage__artwork::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 23%;
  top: 50%;
  width: min(49vw, 39rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    conic-gradient(
      from 20deg,
      transparent 0 13%,
      rgba(0, 212, 189, 0.65) 17%,
      transparent 23% 48%,
      rgba(139, 92, 246, 0.72) 53%,
      transparent 60% 82%,
      rgba(72, 168, 255, 0.58) 87%,
      transparent 93%);
  mask:
    radial-gradient(
      circle,
      transparent 0 48%,
      #000 49% 50%,
      transparent 51% 61%,
      #000 62% 63%,
      transparent 64%);
  opacity: 0.65;
  transform: translateY(-50%);
  animation: login-energy-orbit 24s linear infinite;
}
.login-stage__artwork::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 4%;
  bottom: 4%;
  left: 24%;
  width: 10rem;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(196, 181, 253, 0.12),
      transparent);
  filter: blur(1.1rem);
  transform: skewX(-12deg);
  animation: login-light-sweep 9s ease-in-out infinite;
}
.login-stage__guitar {
  z-index: 1;
  animation: login-guitar-float 9s ease-in-out infinite alternate;
}
.login-stage__sparkles {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}
.login-stage__sparkles span {
  position: absolute;
  width: 0.34rem;
  height: 0.34rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0.45rem #fff, 0 0 1rem rgba(139, 92, 246, 0.9);
  animation: login-sparkle-rise 6.5s ease-in-out infinite;
}
.login-stage__sparkles span:nth-child(1) {
  left: 39%;
  top: 24%;
}
.login-stage__sparkles span:nth-child(2) {
  left: 55%;
  top: 38%;
  animation-delay: -1.6s;
}
.login-stage__sparkles span:nth-child(3) {
  left: 36%;
  top: 61%;
  animation-delay: -3.2s;
}
.login-stage__sparkles span:nth-child(4) {
  left: 57%;
  top: 70%;
  animation-delay: -4.5s;
}
.login-stage__sparkles span:nth-child(5) {
  left: 47%;
  top: 15%;
  animation-delay: -5.4s;
}
.login-stage__media {
  transform-origin: center;
  animation: login-aurora-breathe 11s ease-in-out infinite alternate;
}
.login-panel__backdrop {
  position: absolute;
  z-index: 0;
  right: -22%;
  bottom: -8%;
  width: min(82%, 32rem);
  height: 96%;
  object-fit: contain;
  opacity: 0.045;
  filter: saturate(0.7) contrast(0.82) blur(0.2px);
  mask-image:
    radial-gradient(
      ellipse 76% 82% at 58% 52%,
      #000 0 38%,
      rgba(0, 0, 0, 0.7) 64%,
      transparent 100%);
  pointer-events: none;
  animation: login-panel-artwork-float 14s ease-in-out infinite alternate;
}
@media (min-width: 768px) {
  .login-panel__backdrop {
    opacity: 0.072;
  }
}
.login-card {
  position: relative;
  z-index: 1;
}
.login-card__motif img {
  width: 100%;
  height: 100%;
  transform: rotate(-8deg);
  animation: login-violin-pulse 4.8s ease-in-out infinite;
}
.login-stage__quote-mark {
  animation: login-quote-pulse 3.8s ease-in-out infinite;
}
.login-form__submit {
  position: relative;
  overflow: hidden;
}
.login-form__submit::after {
  content: "";
  position: absolute;
  inset: -40% auto -40% -35%;
  width: 22%;
  background: rgba(255, 255, 255, 0.28);
  filter: blur(0.3rem);
  pointer-events: none;
  transform: skewX(-18deg);
  animation: login-button-sheen 5.8s ease-in-out infinite;
}
@keyframes login-energy-orbit {
  to {
    transform: translateY(-50%) rotate(360deg);
  }
}
@keyframes login-light-sweep {
  0%, 100% {
    opacity: 0;
    transform: translateX(-5rem) skewX(-12deg);
  }
  45%, 60% {
    opacity: 1;
  }
  70% {
    opacity: 0;
    transform: translateX(23rem) skewX(-12deg);
  }
}
@keyframes login-guitar-float {
  from {
    filter: drop-shadow(0 1.5rem 2.5rem rgba(0, 0, 0, 0.3)) drop-shadow(0 0 0 rgba(108, 92, 231, 0));
    transform: translate3d(0, 0, 0) rotate(-0.8deg);
  }
  to {
    filter: drop-shadow(0 1.8rem 3rem rgba(0, 0, 0, 0.36)) drop-shadow(0 0 1.6rem rgba(108, 92, 231, 0.28));
    transform: translate3d(0.35rem, -0.65rem, 0) rotate(0.8deg);
  }
}
@keyframes login-aurora-breathe {
  to {
    transform: scale(1.035);
    filter: saturate(1.12);
  }
}
@keyframes login-panel-artwork-float {
  to {
    transform: translate3d(-0.16rem, -0.18rem, 0) scale(1.006);
  }
}
@keyframes login-sparkle-rise {
  0%, 100% {
    opacity: 0.18;
    transform: translate3d(0, 0.45rem, 0) scale(0.65);
  }
  48% {
    opacity: 1;
    transform: translate3d(0.45rem, -0.55rem, 0) scale(1);
  }
}
@keyframes login-violin-pulse {
  0%, 100% {
    filter: drop-shadow(0 0 0 rgba(108, 92, 231, 0));
    transform: rotate(-8deg) scale(1.82);
  }
  50% {
    filter: drop-shadow(0 0 0.55rem rgba(108, 92, 231, 0.42));
    transform: rotate(-4deg) scale(1.98);
  }
}
@keyframes login-quote-pulse {
  50% {
    color: #fff;
    text-shadow: 0 0 1rem rgba(167, 139, 250, 0.8);
    transform: translateY(-0.08rem);
  }
}
@keyframes login-button-sheen {
  0%, 68%, 100% {
    opacity: 0;
    transform: translateX(0) skewX(-18deg);
  }
  74% {
    opacity: 1;
  }
  86% {
    opacity: 0;
    transform: translateX(37rem) skewX(-18deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .login-stage__artwork::before,
  .login-stage__artwork::after,
  .login-stage__guitar,
  .login-stage__media,
  .login-panel__backdrop,
  .login-stage__sparkles span,
  .login-stage__quote-mark,
  .login-card__motif img,
  .login-form__submit::after {
    animation: none;
  }
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
  min-height: 100%;
  min-height: 100dvh;
  font-family: var(--font-body);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-body);
  line-height: var(--line-height-normal);
  color: var(--text-primary);
  background: var(--background);
  -webkit-font-smoothing: antialiased;
}
h1,
h2,
h3,
h4 {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-heading);
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin: 0;
}
h1 {
  font-size: var(--font-size-2xl);
}
h2 {
  font-size: var(--font-size-xl);
}
h3 {
  font-size: var(--font-size-lg);
}
a {
  color: var(--primary);
  text-decoration: none;
}
a:hover {
  color: var(--primary-hover);
}
.page__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}
.page__header h1 {
  margin: 0 0 var(--space-2);
  font-size: 1.5rem;
}
.page__header p {
  margin: 0;
  color: var(--text-muted);
}
.shell__content > router-outlet + * {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
}
.shell__content > router-outlet + *:has(.student-form-page) {
  display: flex;
  flex-direction: column;
  flex: 1 1 0%;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  overflow: hidden;
}
.platform-shell__main:has(.page--table),
.platform-shell__main:has(.page__table-wrap) {
  overflow: hidden;
}
.shell__content > router-outlet + *:has(.page--table),
.shell__content > router-outlet + *:has(.page__table-wrap),
.platform-shell__main > router-outlet + *:has(.page--table),
.platform-shell__main > router-outlet + *:has(.page__table-wrap) {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  height: 100%;
  min-height: 0;
}
@media (max-width: 1023px) {
  .shell__content > router-outlet + *:has(.page--table),
  .shell__content > router-outlet + *:has(.page__table-wrap),
  .platform-shell__main > router-outlet + *:has(.page--table),
  .platform-shell__main > router-outlet + *:has(.page__table-wrap) {
    display: block !important;
    height: auto !important;
    max-height: none !important;
    flex: none !important;
  }
}
.page--table,
.page:has(.page__table-wrap) {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
@media (max-width: 1023px) {
  .page--table,
  .page:has(.page__table-wrap) {
    display: block;
    height: auto !important;
    max-height: none !important;
    min-height: 0;
    overflow: visible !important;
  }
}
.page--table > app-page-header,
.page--table > .page__header,
.page--table > .page__toolbar,
.page--table > .filters,
.page--table > .stage-filters,
.page--table > .tab-toolbar,
.page--table > p-message,
.page:has(.page__table-wrap) > app-page-header,
.page:has(.page__table-wrap) > .page__header,
.page:has(.page__table-wrap) > .page__toolbar,
.page:has(.page__table-wrap) > .filters,
.page:has(.page__table-wrap) > .stage-filters,
.page:has(.page__table-wrap) > .tab-toolbar,
.page:has(.page__table-wrap) > p-message {
  flex-shrink: 0;
}
.page--table > app-empty-state,
.page--table > app-skeleton-list-row,
.page:has(.page__table-wrap) > app-empty-state,
.page:has(.page__table-wrap) > app-skeleton-list-row {
  flex: 1 1 auto;
  min-height: 0;
}
.page--table > p-tabs,
.page--table p-tabs,
.page:has(.page__table-wrap) > p-tabs,
.page:has(.page__table-wrap) p-tabs {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.page--table p-tablist,
.page--table .p-tablist,
.page:has(.page__table-wrap) p-tablist,
.page:has(.page__table-wrap) .p-tablist {
  flex-shrink: 0;
}
.page--table p-tabpanels,
.page--table .p-tabpanels,
.page:has(.page__table-wrap) p-tabpanels,
.page:has(.page__table-wrap) .p-tabpanels {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.page--table p-tabpanel,
.page--table .p-tabpanel,
.page:has(.page__table-wrap) p-tabpanel,
.page:has(.page__table-wrap) .p-tabpanel {
  display: none;
  flex: none;
  min-height: 0;
}
.page--table p-tabpanel[data-p-active=true],
.page--table .p-tabpanel[data-p-active=true],
.page:has(.page__table-wrap) p-tabpanel[data-p-active=true],
.page:has(.page__table-wrap) .p-tabpanel[data-p-active=true] {
  display: flex !important;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
.page--table p-tabpanel[data-p-active=true] > .tab-toolbar,
.page--table .p-tabpanel[data-p-active=true] > .tab-toolbar,
.page--table p-tabpanel[data-p-active=true] > .filters,
.page--table .p-tabpanel[data-p-active=true] > .filters,
.page:has(.page__table-wrap) p-tabpanel[data-p-active=true] > .tab-toolbar,
.page:has(.page__table-wrap) .p-tabpanel[data-p-active=true] > .tab-toolbar,
.page:has(.page__table-wrap) p-tabpanel[data-p-active=true] > .filters,
.page:has(.page__table-wrap) .p-tabpanel[data-p-active=true] > .filters {
  flex-shrink: 0;
}
.page--table p-tabpanel[data-p-active=true] > app-skeleton-list-row,
.page--table .p-tabpanel[data-p-active=true] > app-skeleton-list-row,
.page--table p-tabpanel[data-p-active=true] > app-empty-state,
.page--table .p-tabpanel[data-p-active=true] > app-empty-state,
.page--table p-tabpanel[data-p-active=true] > .page__table-wrap,
.page--table .p-tabpanel[data-p-active=true] > .page__table-wrap,
.page--table p-tabpanel[data-p-active=true] > .timetable-wrap,
.page--table .p-tabpanel[data-p-active=true] > .timetable-wrap,
.page:has(.page__table-wrap) p-tabpanel[data-p-active=true] > app-skeleton-list-row,
.page:has(.page__table-wrap) .p-tabpanel[data-p-active=true] > app-skeleton-list-row,
.page:has(.page__table-wrap) p-tabpanel[data-p-active=true] > app-empty-state,
.page:has(.page__table-wrap) .p-tabpanel[data-p-active=true] > app-empty-state,
.page:has(.page__table-wrap) p-tabpanel[data-p-active=true] > .page__table-wrap,
.page:has(.page__table-wrap) .p-tabpanel[data-p-active=true] > .page__table-wrap,
.page:has(.page__table-wrap) p-tabpanel[data-p-active=true] > .timetable-wrap,
.page:has(.page__table-wrap) .p-tabpanel[data-p-active=true] > .timetable-wrap {
  flex: 1 1 auto;
  min-height: 0;
}
.page__stack-toggle {
  display: none;
}
.page__table-wrap {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}
.page__table-wrap p-table {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: 100%;
}
.page__table-wrap .p-datatable.page__table,
.page__table-wrap .page__table.p-datatable,
.page__table-wrap .p-datatable.p-datatable-flex-scrollable {
  display: flex !important;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: 100% !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.page__table-wrap .p-datatable-table-container,
.page__table-wrap .p-datatable-wrapper,
.page__table-wrap .p-datatable-scrollable-wrapper,
.page__table-wrap .p-virtualscroller,
.page__table-wrap .p-scroller {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.page__table-wrap .p-datatable-table {
  min-width: 40rem;
  width: 100%;
  table-layout: auto;
  border-collapse: separate !important;
  border-spacing: 0 !important;
}
.page__table-wrap .p-datatable-thead > tr > th,
.page__table-wrap .p-datatable-tbody > tr > td {
  vertical-align: middle !important;
  border: 0 none !important;
  border-bottom: 1px solid var(--border) !important;
}
.page__table-wrap .p-datatable-scrollable .p-datatable-thead > tr > th {
  position: sticky;
  top: 0;
  z-index: 1;
}
.page__table-wrap .p-datatable-paginator-bottom {
  margin-top: auto;
  flex-shrink: 0;
  border-top: 1px solid var(--border);
  background: var(--surface);
}
.page__table-wrap--embedded {
  flex: none;
  min-height: 12rem;
  max-height: 20rem;
}
@media (max-width: 1023px) {
  .page__table-wrap--embedded {
    min-height: 0;
    max-height: none;
  }
}
@media (max-width: 1023px) {
  .shell__content > router-outlet + *:has(.page--table),
  .shell__content > router-outlet + *:has(.page__table-wrap) {
    display: block !important;
    height: auto !important;
    max-height: none !important;
    flex: none !important;
  }
  .page__table-wrap {
    overflow: visible;
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    height: auto !important;
    max-height: none !important;
    flex: none !important;
    min-height: 0;
  }
  .page__table-wrap p-table,
  .page__table-wrap .p-datatable.page__table,
  .page__table-wrap .page__table.p-datatable,
  .page__table-wrap .p-datatable.p-datatable-flex-scrollable {
    display: block !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    flex: none !important;
  }
  .page__table-wrap .p-datatable-table {
    min-width: 0 !important;
    width: 100% !important;
    display: block;
  }
  .page__table-wrap .p-datatable-thead {
    display: none;
  }
  .page__table-wrap .p-datatable-table-container,
  .page__table-wrap .p-datatable-wrapper,
  .page__table-wrap .p-datatable-scrollable-wrapper,
  .page__table-wrap .p-virtualscroller,
  .page__table-wrap .p-scroller {
    display: block !important;
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
    flex: none !important;
  }
  .page__table-wrap .p-datatable-tbody {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
  }
  .page__table-wrap .p-datatable-tbody > tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    margin: 0;
    overflow: hidden;
    background: var(--surface) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
  }
  .page__table-wrap .p-datatable-tbody > tr:hover > td {
    background: transparent !important;
  }
  .page__table-wrap .p-datatable-tbody > tr > td {
    display: none;
    width: 100% !important;
    max-width: 100%;
    padding: 0.55rem 0.9rem !important;
    border: 0 none !important;
    border-bottom: 1px solid var(--border) !important;
    text-align: right;
    white-space: normal;
    word-break: break-word;
    font-weight: 600;
  }
  .page__table-wrap .p-datatable-tbody > tr > td.page__stack-title,
  .page__table-wrap .p-datatable-tbody > tr > td.page__stack-sub {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    text-align: left;
    border-bottom: 0 !important;
  }
  .page__table-wrap .p-datatable-tbody > tr > td.page__stack-title {
    font-size: 0.95rem;
    font-weight: 700;
    padding-bottom: 0.15rem !important;
  }
  .page__table-wrap .p-datatable-tbody > tr > td.page__stack-sub {
    color: var(--text-muted);
    font-size: 0.8rem;
    font-weight: 550;
    padding-top: 0 !important;
    padding-bottom: 0.7rem !important;
  }
  .page__table-wrap .page__stack-toggle {
    flex-shrink: 0;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    margin-left: auto;
    border: 0;
    border-radius: 999px;
    background: var(--primary-soft);
    color: var(--primary);
    cursor: pointer;
  }
  .page__table-wrap .page__stack-toggle i {
    font-size: 0.8rem;
    transition: transform 180ms ease;
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    border-bottom: 1px solid var(--border) !important;
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td::before {
    content: attr(data-label);
    flex: 0 1 40%;
    max-width: 9rem;
    text-align: left;
    font-size: 0.7rem;
    font-weight: 650;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--text-muted);
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td:not([data-label])::before,
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td[data-label=""]::before {
    display: none;
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td.page__stack-title {
    background: var(--surface-secondary);
    padding-bottom: 0.55rem !important;
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td.page__stack-title::before {
    display: none;
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td.page__stack-title .page__stack-toggle i {
    transform: rotate(180deg);
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td.page__stack-sub {
    color: var(--text-primary);
    font-weight: 600;
    padding-top: 0.55rem !important;
    padding-bottom: 0.55rem !important;
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td.page__actions-col {
    justify-content: flex-end;
    align-items: center;
    background: var(--surface-secondary);
    border-bottom: 0 !important;
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td.page__actions-col::before {
    display: none;
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td.page__actions-col .page__actions {
    width: 100%;
    justify-content: flex-end;
    gap: 0.35rem;
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td.page__actions-col .p-button {
    width: auto !important;
    min-width: var(--btn-height, 2.35rem);
    min-height: var(--btn-height, 2.35rem);
    height: var(--btn-height, 2.35rem) !important;
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td.page__actions-col .p-button:not(.p-button-icon-only) {
    flex: 1 1 auto;
    justify-content: center;
  }
  .page__table-wrap .p-datatable-tbody > tr.is-expanded > td:last-child {
    border-bottom: 0 !important;
  }
  .page__table-wrap .p-datatable-paginator-bottom,
  .page__table-wrap .p-paginator,
  .page__table-wrap .brand-paginator {
    margin-top: 0.75rem;
    margin-bottom: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    position: relative;
    z-index: 1;
  }
  .filters,
  .tab-toolbar {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  .filters p-select,
  .filters .p-select,
  .filters p-datepicker,
  .filters input,
  .filters p-button,
  .filters .p-button,
  .tab-toolbar p-select,
  .tab-toolbar .p-select,
  .tab-toolbar p-datepicker,
  .tab-toolbar input,
  .tab-toolbar p-button,
  .tab-toolbar .p-button {
    width: 100%;
    min-width: 0 !important;
    max-width: 100%;
  }
  .page__toolbar {
    flex-wrap: wrap;
  }
  .page__toolbar input {
    flex: 1 1 0;
    min-width: 0;
  }
  .page__toolbar p-select {
    flex: 1 1 100%;
  }
}
td.page__actions-col,
th.page__actions-col {
  width: 7.5rem;
  white-space: nowrap;
  text-align: right;
  vertical-align: middle !important;
}
.page__actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-1);
  vertical-align: middle;
}
.page__actions p-button {
  display: inline-flex;
  vertical-align: middle;
}
.page__actions .p-button {
  width: var(--btn-height-sm, 1.95rem);
  height: var(--btn-height-sm, 1.95rem);
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.page__row--click {
  cursor: pointer;
}
.page__row--click:hover > td {
  background: color-mix(in srgb, var(--primary) 6%, transparent);
}
.page__row-title {
  font-weight: 650;
  color: var(--text-primary);
}
.page__row--click:hover .page__row-title {
  color: var(--primary);
}
.page__back {
  display: inline-block;
  margin-bottom: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--text-muted);
}
.page__back:hover {
  color: var(--primary);
}
.page__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
.filters p-select,
.tab-toolbar p-select {
  min-width: min(14rem, 100%);
  max-width: 100%;
}
.form-field > p-select,
[class$=__field] > p-select {
  width: 100%;
}
input:not([type=email]):not([type=password]):not([type=number]):not([type=date]):not([type=time]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]):not([type=tel]):not([type=url]):not([autocomplete=email]):not([autocomplete=current-password]):not([autocomplete=new-password]):not([data-keep-case]),
textarea:not([data-keep-case]) {
  text-transform: uppercase;
}
input::placeholder,
textarea::placeholder {
  text-transform: none;
}
.p-password input,
.p-select-overlay input,
.p-multiselect-overlay input,
.p-autocomplete-panel input {
  text-transform: none !important;
}
.p-select-label,
.p-select-option,
.p-multiselect-label,
.p-multiselect-option {
  text-transform: uppercase;
}
.phone-input__country .p-select-label,
.phone-input__country-panel .p-select-option,
.phone-input__option {
  text-transform: none;
}

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