diff --git a/.gitignore b/.gitignore
index cd3d012..b8ffdd4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
# Ignore my Config file
-bin/dconf.js
\ No newline at end of file
+bin/dconf.js
+# Other files
+desktop.ini
\ No newline at end of file
diff --git a/bin/d.js b/bin/d.js
deleted file mode 100644
index 368b336..0000000
--- a/bin/d.js
+++ /dev/null
@@ -1,177 +0,0 @@
-// (c) DRELLER
-// https://github.com/Dreller
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// Core JS Functions
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-//
-// Global Variables
- let spinnerEnabled;
-
-function dInit(){
- // Initialize d
- window["dreller"] = {
- queue: []
- };
-
- // Get URL Parameters
- dreller["params"] = [];
- const queryString = window.location.search;
- const urlParams = new URLSearchParams(queryString);
- const entries = urlParams.entries();
- for( const entry of entries ){
- console.log(entry);
- (dreller.params).push({
- key: entry[0],
- value: entry[1]
- });
- }
-
- // Load Settings
- dStackAdd( "dJSON_Load", {binFile: "d.json",storage: "config"});
- // Initialize SP Code
- dStackAdd( "dSpInit" );
- // Start Execution
- dStackRun();
-}
-
-function dInitReport(){
- // Initialize d
- window["dreller"] = {
- queue: []
- };
-
- // Get URL Parameters
- dreller["params"] = {};
- const queryString = window.location.search;
- const urlParams = new URLSearchParams(queryString);
- const entries = urlParams.entries();
- for( const entry of entries ){
- dreller.params[entry[0]] = entry[1];
- }
-
- // Load Settings
- dStackAdd( "dJSON_Load", {binFile: "d.json",storage: "config"});
- // Initialize SP Code
- dStackAdd( "dSpRunInit" );
- // Start Execution
- dStackRun();
-}
-
-function dSpinner(){
-
-}
-
-function dJSON_Load(args){
- console.log("Executing dLoadJSON...");
- console.dir(args);
- if( dJSON_checkRequiredParams(args, ["binFile", "storage"]) == false ){
- alert(`Unable to load JSON File, see the Console for details.`);
- return false;
- }
- // Load the actual file into the storage variable
- let explodedURL = (window.location.href).split("/");
- explodedURL.pop();
- let fileURL = explodedURL.join("/") + "/bin/" + args.binFile;
- $.ajax({
- url: fileURL,
- method: "GET",
- dataType: "json",
- contentType: "application/json",
- success: function(data){
- if( typeof data === "object" ){
- dreller[args.storage] = data;
- } else {
- dreller[args.storage] = JSON.parse(data);
- }
- dStackRun();
- }
- });
-
-}
-
-function dJSON_checkRequiredParams(args, requiredParams){
-// args: object to verify
-// requiredParams: array of property names to check
- let missingParams = [];
- requiredParams.forEach(function(param){
- if( !args.hasOwnProperty(param)){
- missingParams.push(param);
- }
- });
- if( missingParams.length > 0 ){
- console.group("Missing Parameters");
- console.error(missingParams.length + " missing parameter(s) on " + requiredParams.length + " expected.");
- console.groupEnd();
- return false;
- }else{
- return true;
- }
-}
-
-function dStackAdd(fct, args = {}){
- console.log("Stack: " + fct + ", Args: " + JSON.stringify( args ));
- (dreller.queue).push({
- name: fct,
- params: JSON.stringify(args)
- });
-}
-function dStackRun(){
- if( (dreller.queue).length > 0 ){
-
- let thisEntry = (dreller.queue).shift();
- console.log( thisEntry );
- let thisFct = thisEntry.name;
- console.log("Run from Stack: " + thisFct + ", Args: " + thisEntry.params );
- window[thisFct]( JSON.parse( thisEntry.params ) );
- }
-}
-
-function dFormSelectSetOptions(selectId, dataSource, displayName, valueName){
- $("#" + selectId).empty();
- $("#" + selectId).append("Select... ");
- dataSource.forEach( function( thisEntry ){
- $("#" + selectId).append(`${thisEntry[displayName]} `)
- });
-}
-
-
-function dAddRow(table, args = {}){
-console.log("Add Row in: " + table);
-console.log(args);
- var rowTemplate = $('#dEditor' + table + "_0").clone();
- var rowCount = $('#table' + table + " > tbody").find('tr').length;
- var newSuffix = parseInt(rowCount) + 1;
- var newPrefix = "dEditor" + table;
- var newId = newPrefix + "_" + newSuffix;
-
- $(rowTemplate).attr('id', newId);
-
- if( args == {} ){
- $('#table' + table + ' tbody').append(rowTemplate);
- }else{
- //$('#table' + table + ' tbody').prepend(rowTemplate);
- $(rowTemplate).insertBefore("#dEditor" + table + "_0");
- }
-
- // Set IDs
- $("#" + newId).find("select, input").each(function(ndx){
- $(this).attr('id', ($(this).attr('data-section') + $(this).attr('data-source') + newSuffix) );
- $(this).attr('data-ndx', newSuffix);
- });
-
-
- $("#" + newId).find("input[data-ndx=" + newSuffix + "]").each( function(thisNdx){
- if( args.hasOwnProperty( $(this).attr('data-source') ) ){
- $(this).val(args[$(this).attr('data-source')]);
- }else{
- $(this).val("");
- }
- });
- $("#" + newId).find("select[data-ndx=" + newSuffix + "]").each( function(thisNdx){
- if( args.hasOwnProperty( $(this).attr('data-source') ) ){
- $(this).val(args[$(this).attr('data-source')]);
- }else{
- $(this).val("");
- }
- });
-}
diff --git a/bin/d.json b/bin/d.json
deleted file mode 100644
index 8baf1b6..0000000
--- a/bin/d.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rootSiteUrl": "https://08xp1.sharepoint.com/sites/Spitfire",
- "reportListName": "ReportDefn",
- "automaticLoad": true
-}
diff --git a/bin/dconf.template.js b/bin/dconf.template.js
index f863422..b7bdc95 100644
--- a/bin/dconf.template.js
+++ b/bin/dconf.template.js
@@ -118,5 +118,5 @@ var _SPR_LOGLEVEL = "trace";
* Runner. Example: 'file.aspx'.
*
*/
-var _SPR_PAGEBUILDER = "dbr.aspx";
-var _SPR_PAGERUNNER = "drr.aspx";
\ No newline at end of file
+var _SPR_PAGEBUILDER = "sprBuild.aspx";
+var _SPR_PAGERUNNER = "sprExecute.aspx";
\ No newline at end of file
diff --git a/bin/djs.js b/bin/djs.js
deleted file mode 100644
index b6c1ce0..0000000
--- a/bin/djs.js
+++ /dev/null
@@ -1,847 +0,0 @@
-// (c) DRELLER
-// https://github.com/Dreller
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// Core JS Functions
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-//
-// General Variables
- var _ndx = 1;
-
-// Array of Filter Operations
- var _oper = [
- { op: "eq", label: "Equal", notation: "=", syntax: "seq" },
- { op: "ne", label: "Not equal", notation: "<>", syntax: "seq" },
- { op: "gt", label: "Greater than", notation: ">", syntax: "seq" },
- { op: "ge", label: "Greater than or equal", notation: ">=", syntax: "seq" },
- { op: "lt", label: "Less than", notation: "<", syntax: "seq" },
- { op: "le", label: "Less than or equal", notation: "<=", syntax: "seq" }
- ];
-
-function HelloDreller(runtype){
- window["dreller"] = {
- client: {
- lang: ((window.navigator.language).split("-")[0]).toLowerCase(),
- param: {},
- timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
- },
- queue: [],
- history: [],
- report: {},
- performance: {
- start: 0,
- end: 0,
- processTime: 0,
- rows: 0
- },
- runtime: {
- mode: runtype.toLowerCase(),
- action: ""
- }
- }
-/*
-// Running a Report
-if( runtype == "run" ){
- d_StackAdd( d_ParseURL );
- d_StackAdd( d_GetCurrentUser );
- d_StackAdd( d_GetSite );
- d_StackAdd( d_LoadReport, null);
- d_StackAdd( d_BuildQueryUrl );
- d_StackAdd( d_RequestData );
-}
-
-// Building a Report
-if( runtype == "build" ){
- d_StackAdd( d_ParseURL );
- d_StackAdd( d_GetCurrentUser );
- d_StackAdd( d_GetSite );
- d_StackAdd( d_BuildHeadings );
- d_StackAdd( d_LoadLists );
- d_StackAdd( d_InsertLists );
-
-
-
-}
-*/
-
-d_StackAdd( d_Waiting, false );
-// Execute the queue sequentially.
- d_StackRun();
-}
-
-function d_StackAdd(fctName, arguments = null){
- dreller.queue.push({fct: fctName, args: arguments});
-}
-
-function d_StackRun(){
- if( (dreller.queue).length == 0){ return; };
- var thisCommand = dreller.queue.shift();
- var thisCommandName = thisCommand.fct;
- var thisCommandArgs = thisCommand.args;
- if( thisCommandArgs == null ){
- thisCommandName();
- }else{
- thisCommandName(thisCommandArgs);
- }
-}
-
-function d_ParseURL(){
-// Get URL Parameters and store them in dreller.client.param
- const urlParams = new URLSearchParams(window.location.search);
- const entries = urlParams.entries();
- for( const entry of entries ){
- dreller.client.param[(entry[0]).toLowerCase()] = entry[1];
- }
- d_StackRun();
-}
-
-function d_GetCurrentUser(){
- d_CallSP( "currentuser", null, function(response){
- dreller["user"] = {
- email: response.d.Email,
- name: response.d.Title,
- id: response.d.Id
- }
- d_StackRun();
-
- });
-}
-
-function d_GetSite(){
- d_CallSP( "title" , null, function(response){
- dreller["site"] = {
- title: response.d.Title,
- ctx: new SP.ClientContext( _URL )
- }
- dreller.site["api"] = dreller.site.ctx.get_web().get_lists().getByTitle( _REPORTLIST );
- d_StackRun();
-
- });
-}
-
-function d_LoadReport(args){
-// Load an existing report. args = {id: 0}
- if( args == null ){ var args = {id: dreller.client.param.rpt } }
- dreller.performance.start = performance.now();
- d_CallSP( "lists/getbytitle('" + _REPORTLIST + "')/items(" + args.id + ")", null, function(response){
- var x1 = JSON.parse( response.d.Definition );
- var x2 = {
- title: response.d.Title,
- id: response.d.ID,
- list_guid: response.d.List
- };
- dreller["report"] = {
- ...x2,
- ...x1
- }
- d_StackRun();
- });
-}
-
-function d_BuildQueryUrl(){
-// https://www.odata.org/documentation/odata-version-2-0/uri-conventions/#FilterSystemQueryOption
-
- // Where
- var aWhere = [];
- dreller.report.select.forEach( function(thisSelect, thisIndex){
- var thisOp = _oper.filter( x => (x.op).toLowerCase() == (thisSelect.op).toLowerCase() )[0];
- if( typeof thisOp === "undefined" ){
- console.error( `Oops! Operator not handled: ${thisSelect.op}` );
- }else{
-
- console.log( thisOp );
-
- var thisVal = `'${thisSelect.value}'`;
- if( thisSelect.type == "Number" ){
- thisVal = `${thisSelect.value}`;
- }
-
- if( thisOp.syntax == "seq" ){
- aWhere.push( `(${thisSelect.col} ${thisOp.op} ${thisVal})` );
- }else{
- aWhere.push( `(${thisOp.op}(${thisSelect.col}, ${thisVal}))` );
- }
-
- }
-
- });
-
- // Sort
- var aSort = [];
- dreller.report.sort.forEach( function( thisSort, thisIndex ){
- aSort.push( `${thisSort.col} ${thisSort.order}` );
- });
-
- // Show
- var aShow = [];
- dreller.report.show.forEach( function( thisShow, thisIndex ){
- aShow.push(thisShow.col);
- });
-
- // Build the Query
- var aParameters = [];
- aParameters.push( "$format=json" );
- if( aWhere.length > 0 ){
- aParameters.push( `$filter=(${ aWhere.join(" and ") })` );
- }
- if( aSort.length > 0 ){
- aParameters.push( `$orderby=${ aSort.join(",") }` );
- }
- if( aShow.length > 0 ){
- aParameters.push( `$select=${ aShow.join(",") }` );
- }
- var queryString = aParameters.join("&");
- dreller.report["odata"] = {
- string: queryString,
- where: aWhere,
- sort: aSort,
- show: aShow
- }
-
- console.log( dreller.report.odata );
- d_StackRun();
-
-}
-
-function d_RequestData(){
- d_CallSP( "Lists(guid'" + dreller.report.list_guid + "')/items?" + dreller.report.odata.string,
- { method: "GET" },
- function(response){
- d_BuildTable(response.d.results);
- d_BuildHeadings();
- })
-}
-
-function d_BuildTable(data){
- // Insert Table Headings
- dreller.report.show.forEach( function( thisShow, thisIndex ){
- $("#reportContainerHead").append(`
${thisShow.title} `);
- } );
-
- // Insert Rows
- data.forEach( function( thisRow, thisIndex){
- $("#reportContainerBody").append(``);
- dreller.report.show.forEach( function( thisShow, thisIndex ){
- $("#reportContainerBody").append(d_ProcessCell(thisRow.ID, thisRow[thisShow.col], thisShow));
- });
- $("#reportContainerBody").append(` `);
- });
-
- // Count Rows
- dreller.performance.rows = data.length;
-}
-
-function d_ProcessCell(id, value, col){
-
- var cellStyle = "";
- var cellValue;
- var cellFormat = "";
-
- switch(col.type){
- case "Number":
- cellFormat = "Number";
- cellStyle = "text-align:right;"
- cellValue = (value).toLocaleString(dreller.client.lang);
- break;
-
- default:
- cellFormat = "Default";
- cellStyle = "text-align: left;";
- cellValue = value;
- }
-
- return `${cellValue} `;
-}
-
-function d_BuildHeadings(){
- if( dreller.runtime.mode == "run" ){
- // Report Name
- $("#reportName").html(dreller.report.title);
- // Report Description
- $("#runInfo").html(dreller.report.description);
-
- // Runtime Info
- dreller.performance.end = performance.now();
- dreller.performance.processTime = (dreller.performance.end - dreller.performance.start);
- $("#runInfo").append(`Report run by ${dreller.user.name} on ${dreller.site.title}
- ${dreller.performance.rows} rows processed in ${Math.round(dreller.performance.processTime)} milliseconds, on ${d_PrettyNow()}.
`);
- }
-
- if( dreller.runtime.mode == "build" ){
- // User Info
- $("#headUserLogon").html(`Logged as ${dreller.user.name} on ${dreller.site.title}`);
- }
-
- d_StackRun();
-
-}
-
-
-
-function d_LoadList(args){
-
-}
-
-function d_LoadColumn(args){
-
-}
-
-/**
- * Load Lists for the current Site.
- */
-function d_LoadLists(){
- // Configuration File control if we can use Lists and/or Libraries - Use of $filter
- if( _ALLOW_CUST_LIBRARY && _ALLOW_SYST_LIBRARY && _ALLOW_CUST_LISTS ){
- var listFilter = "";
- }else{
- var aBaseTypes = [];
- if( _ALLOW_CUST_LIBRARY || _ALLOW_SYST_LIBRARY ){
- aBaseTypes.push( "BaseType eq 1" );
- }
- if( _ALLOW_CUST_LISTS ){
- aBaseTypes.push( "BaseType eq 0" );
- }
- var listFilter = "&$filter=" + aBaseTypes.join(" and ");
- }
-
- d_CallSP("lists?$select=Id,Title,Hidden,BaseType,ItemCount,Fields&$expand=Fields" + listFilter, {}, function(response){
- dreller.site["lists"] = [];
- response.d.results.forEach( function( thisEntry, thisIndex) {
- // Establish conditions if we should keep the list or not.
- // Don't keep if list is "Hidden".
- if( thisEntry.Hidden == true ){
- console.log(`(d_LoadLists) List "${thisEntry.Title}" is Hidden."`);
- return;
- }
- // ...
- // At this point, we keep the list
- (dreller.site.lists).push( thisEntry );
- });
- });
-
- d_StackRun();
-}
-
-/**
- * Insert Lists in Select
- */
-function d_InsertLists(){
- (dreller.site.lists).forEach( function( thisList, thisIndex ){
- $("#lstDatasource").append(`${thisList.Title} - ${(thisList.BaseType=="1"?"Library":"List")} - ${thisList.ItemCount} record(s). `);
- });
- d_StackRun();
-}
-
-/**
- * Get Reports for a List
- */
-function d_GetReports(){
- d_WaitingMessage( "Getting Reports for this Source..." );
- d_Waiting( true );
- d_CallSP( "lists/getbytitle('" + _REPORTLIST + "')/items?$select=Id,Title,Definition,List&$filter=List eq '" + $("#lstDatasource").val() + "'", null, function(response){
- if( response.d.results.length == 0 ){
- $("#tabExisting").hide();
- $("#tabCreate").hide();
- $('#SelectReportExisting').hide();
- $('#SelectReportCreate').show();
- dreller.runtime.action = "create";
- }else{
- $("#tabExisting").hide();
- $("#tabCreate").show();
- $('#SelectReportExisting').show();
- $('#SelectReportCreate').hide()
- dreller.runtime.action = "edit";
- dreller.site["reports"] = response.d.results;
- $("#lstReport").empty();
- $("#lstReport").append(`Choose a report... `);
- (response.d.results).forEach( function( thisReport, thisIndex ){
- $("#lstReport").append(`${thisReport.Title} `);
- });
- }
- d_Waiting( false );
- });
-}
-
-/**
- * Build the Report Editor
- */
-function d_BuildEditor(){
- var xList = (dreller.site.lists).filter( x => x.Id == $("#lstDatasource").val() )[0];
- var xReport = (dreller.site.reports).filter( y => y.Id == $("#lstReport").val())[0];
-
- // Filter the list of Columns if we are allowed to use System Fields or not
- if( _ALLOW_SYST_FIELD ){
- var xColumns = xList.Fields.results;
- }else{
- var xColumns = (xList.Fields.results).filter( x => x.Title == "ID" || ( x.Hidden == false && x.ReadOnlyField == false && x.Title != "Attachments" && x.Title != "Content Type" ) );
- }
-
- // Sort Columns
- xColumns.sort((a, b) => {
- const titleA = a.Title.toLowerCase();
- const titleB = b.Title.toLowerCase();
- if( titleA < titleB ){
- return -1;
- }
- if( titleA > titleB ){
- return 1;
- }
- return 0;
- } );
-
- dreller["editor"] = {
- list: xList,
- columns: xColumns,
- report: xReport,
- reportName: (dreller.runtime.action=="create" ? $("#txtNewReportName").val():xReport.Title)
- }
-
- // Build the Select Template for Columns, so we build it only once.
- var sSelectTemplate = ``;
- dreller.editor.columns.forEach( function(thisColumn){
- sSelectTemplate += `${thisColumn.Title} (${thisColumn.TypeAsString}) `;
- $("#dataDictBody").append(`${thisColumn.Title} ${thisColumn.TypeAsString} ${thisColumn.Description} `);
- });
- sSelectTemplate += ` `;
-
-
- // Build the Select Template for Operators
- var sSelectOperator = ``;
- _oper.forEach( function( thisOper){
- sSelectOperator += `${thisOper.label} `;
- });
- sSelectOperator += " ";
-
- // Build the Select Template for Sort Direction
- var sSelectOrder = `Ascending (A-Z) Descending (Z-A) `;
-
- // Store Templates
- dreller.editor["templates"] = {
- selColumn: sSelectTemplate,
- selOperator: sSelectOperator,
- selDirection: sSelectOrder
- };
-
- // Hide Selectors
- $("#SelectDatasource").hide();
- $("#SelectReport").hide();
-
- // Display what we are doing and on what
- $("#headSelectionDone").html( (dreller.runtime.action == "create" ? `Creating` : `Editing`) + ` Report "${dreller.editor.reportName}" on Datasource "${dreller.editor.list.Title}".` );
- $(".drellerSelectionDone").show();
-
- // Set the Report's 3S: Select / Sort / Show
-
- // Select
- // Add the new blank line
- $("#selectTBody").append(`
- ${d_BuilderControl({type:"select-col"})}
-
- ${d_BuilderControl({type:"select-oper"})}
-
-
-
-
-
- `);
-
- // Sort
- $("#sortTBody").append(`
- ${d_BuilderControl({type:"select-col"})}
-
- ${d_BuilderControl({type:"select-sort"})}
-
-
- `);
-
- // Show
- $("#showTBody").append(`
- ${d_BuilderControl({type:"select-col"})}
-
-
-
-
- `);
-
- if( dreller.runtime.mode == "build" && dreller.runtime.action == "edit" ){
- // Parse the Report Definition
- dreller.editor.report["defn"] = JSON.parse( dreller.editor.report.Definition );
-
- // Show Selection Criteria
- dreller.editor.report.defn.select.forEach( function( thisSelect ){
- d_BuilderAddItem({
- type: "select",
- blank: false,
- data: thisSelect
- });
- } );
- // Show Sort Order
- dreller.editor.report.defn.sort.forEach( function( thisSort ){
- d_BuilderAddItem({
- type: "sort",
- blank: false,
- data: thisSort
- });
- } );
- // Show Columns to show
- dreller.editor.report.defn.show.forEach( function( thisShow ){
- d_BuilderAddItem({
- type: "show",
- blank: false,
- data: thisShow
- });
- } );
-
- // Set the Report Options
-
- }
-
-
- // Show the Editor
- $("#ReportBuilderSection").show();
-
-}
-
-function d_BuilderRemRow( RowElement ){
- console.log("ID: " + RowElement.id);
- RowElement.remove();
-}
-
-/**
- * Return a Report Item
- * @param {} Options - {
- * type: select|sort|show
- * blank: true|false (to add a copy of the template)
- * data: [record]
- * }
- */
-function d_BuilderAddItem( Options ){
- console.log( Options );
- // Get the Template Line
- var templateRow = document.getElementById( Options.type + "Template" );
- // Get the Table
- var containerTable = document.getElementById( Options.type + "TBody" );
- // Create the clone
- var clonedRow = templateRow.cloneNode( true );
- // Adjust the ID and the data-type
- clonedRow.id = Math.random();
- clonedRow.dataset.rowtype = "data";
- // Make the clone visible
- clonedRow.style.display = "";
-
-console.log( clonedRow );
-
- // If the blank parameter is NOT true, we have values to set in the new line
- if( Options.hasOwnProperty( "blank" ) && Options.blank != true ){
-
- clonedRow.querySelector('[id="selectColumn"]').value = Options.data.col;
-
- switch( Options.type ){
- case "select":
- clonedRow.querySelector('[id="selectOperator"]').value = (Options.data.op).toLowerCase();
- clonedRow.querySelector('[id="selectValue"]').value = Options.data.value;
- break;
- case "sort":
- clonedRow.querySelector('[id="selectDirection"]').value = (Options.data.order).toLowerCase();
- break;
- case "show":
- clonedRow.querySelector('[id="showLabel"]').value = Options.data.title;
- break;
- }
- }
-
- // Add the clone in the table
- containerTable.appendChild( clonedRow );
-}
-
-
-/**
- * Return a Control for the Report Builder
- * @param {} Options - {
- * type: select-col|select-sort|select-oper|text
- * id: ID to set in the control
- * }
- */
-function d_BuilderControl(Options){
- var WipControl;
- switch( Options.type ){
- case "select-col":
- WipControl = dreller.editor.templates.selColumn;
- break;
- case "select-oper":
- WipControl = dreller.editor.templates.selOperator;
- break;
- case "select-sort":
- WipControl = dreller.editor.templates.selDirection;
- break;
- case "text":
- WipControl = ` `;
- break;
- }
-
- if( Options.hasOwnProperty("id") ){
- WipControl = WipControl.replaceAll( "%ID%", Options.id );
- }
-
- return WipControl;
-}
-
-function d_BuilderSaveReport(){
- // TODO: Prompt Validations...
-
-
- // Build the Report Definition
- var oSelect = []; var iSelect = 1;
- var oSort = []; var iSort = 1;
- var oShow = []; var iShow = 1;
- document.querySelectorAll('[data-rowtype="data"]').forEach(function(thisRow){
-
- var thisColumn = thisRow.querySelector('[id="selectColumn"]').value;
- var thisColumnType = (dreller.editor.columns.filter( x => x.InternalName == thisColumn )[0]).TypeAsString;
- console.log("Processing column: '" + thisColumn + "', type: " + thisColumnType);
-
- switch( thisRow.dataset.category ){
- case "select":
- oSelect.push({
- i: iSelect,
- col: thisColumn,
- op: thisRow.querySelector('[id="selectOperator"]').value,
- type: thisColumnType,
- value: thisRow.querySelector('[id="selectValue"]').value
- });
- iSelect++;
- break;
- case "sort":
- oSort.push({
- i: iSort,
- col: thisColumn,
- order: thisRow.querySelector('[id="selectDirection"]').value,
- type: thisColumnType
- });
- iSort++;
- break;
- case "show":
- oShow.push({
- i: iShow,
- col: thisColumn,
- title: thisRow.querySelector('[id="showLabel"]').value,
- type: thisColumnType
- });
- iShow++;
- break;
- }
- });
-
- var oDefn = {
- description: "",
- select: oSelect,
- sort: oSort,
- show: oShow
- }
-
- console.log( oDefn );
-
- // SSave Report to SharePoint
- if( dreller.runtime.action == "edit" && dreller.editor.report.Id > 0 ){
- this.oListItem = dreller.site.api.getItemById(dreller.editor.report.Id);
- }else{
- var oCreateInfo = new SP.ListItemCreationInformation();
- this.oListItem = dreller.site.api.addItem( oCreateInfo );
- }
-
- this.oListItem.set_item('Definition', JSON.stringify(oDefn));
- this.oListItem.set_item('Title', dreller.editor.reportName);
- this.oListItem.set_item('List', dreller.editor.list.Id );
- this.oListItem.update();
-
- dreller.site.ctx.executeQueryAsync(
- Function.createDelegate( this, this.d_BuilderSaveReport_Success ),
- Function.createDelegate( this, this.d_BuilderSaveReport_Failed )
- );
-
-}
-
-function d_BuilderSaveReport_Success(){
- alert( "Report" + (dreller.runtime.action == "edit" ? " Updated":" Created") + "." );
- dreller.runtime.action = "edit";
-}
-
-function d_BuilderSaveReport_Failed(sender, args){
- alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
-}
-
-
-function d_PrettyNow(){
- var raw = new Date();
-
- var aMonths = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"];
- if( dreller.client.lang == "fr" ){
- aMonths[1] = "FEV";
- aMonths[3] = "AVR";
- aMonths[4] = "MAI";
- aMonths[7] = "AOU";
- }
- var aParts = [];
- // Day
- aParts.push( ("00" + raw.getDate() ).substr(-2) );
- // Month
- aParts.push( aMonths[raw.getMonth()] );
- // Year
- aParts.push( raw.getFullYear() );
- // Time
- aParts.push( ( "00" + raw.getHours() ).substr(-2) + ":" + ( "00" + raw.getMinutes() ).substr(-2) + ":" + ( "00" + raw.getSeconds() ).substr(-2) );
- // Timezone
- aParts.push( "(" + dreller.client.timezone + ")" );
-
- return aParts.join(" ");
-}
-
-function d_Waiting(toggle){
- if( toggle ){
- $("#waiting").show();
- }else{
- $("#waiting").hide();
- }
-}
-
-function d_WaitingMessage(text){
- $("#waitingInfo").html(text);
-}
-
-function d_CallSP(endpoint, args, callback){
- let basics = {
- url: _URL + "/_api/web/" + endpoint,
- method: "GET",
- async: false,
- headers: {
- "accept": "application/json;odata=verbose",
- "content-type": "application/json;odata=verbose"
- }
- }
- let params = {
- ...basics,
- ...args
- }
- // Add Digest if available
- if( typeof dreller.digest !== undefined && dreller.digest != "" ){
- params.headers["X-RequestDigest"] = dreller.digest;
- }
-
- console.log( params.method + " to " + params.url );
-
- $.ajax(params)
- .done( function ( data ) {
- callback( data );
- })
- .fail( function( data ) {
- console.error("> SharePoint API Error");
- if( typeof data.responseJSON.error.message.value !== undefined ){
- console.error( data.responseJSON.error.message.value );
- }
- })
- .always( function( data ) {
- console.dir( data );
- dreller.history["api" + _ndx] = data;
- _ndx++;
- });
-}
-
-
-
-
-
-
-
-/*
- * Modal
- *
- * Pico.css - https://picocss.com
- * Copyright 2019-2023 - Licensed under MIT
- */
-
-// Config
-const isOpenClass = "modal-is-open";
-const openingClass = "modal-is-opening";
-const closingClass = "modal-is-closing";
-const animationDuration = 400; // ms
-let visibleModal = null;
-
-// Toggle modal
-const toggleModal = (event) => {
- event.preventDefault();
- const modal = document.getElementById(event.currentTarget.getAttribute("data-target"));
- typeof modal != "undefined" && modal != null && isModalOpen(modal)
- ? closeModal(modal)
- : openModal(modal);
-};
-
-// Is modal open
-const isModalOpen = (modal) => {
- return modal.hasAttribute("open") && modal.getAttribute("open") != "false" ? true : false;
-};
-
-// Open modal
-const openModal = (modal) => {
- if (isScrollbarVisible()) {
- document.documentElement.style.setProperty("--scrollbar-width", `${getScrollbarWidth()}px`);
- }
- document.documentElement.classList.add(isOpenClass, openingClass);
- setTimeout(() => {
- visibleModal = modal;
- document.documentElement.classList.remove(openingClass);
- }, animationDuration);
- modal.setAttribute("open", true);
-};
-
-// Close modal
-const closeModal = (modal) => {
- visibleModal = null;
- document.documentElement.classList.add(closingClass);
- setTimeout(() => {
- document.documentElement.classList.remove(closingClass, isOpenClass);
- document.documentElement.style.removeProperty("--scrollbar-width");
- modal.removeAttribute("open");
- }, animationDuration);
-};
-
-// Close with a click outside
-document.addEventListener("click", (event) => {
- if (visibleModal != null) {
- const modalContent = visibleModal.querySelector("article");
- const isClickInside = modalContent.contains(event.target);
- !isClickInside && closeModal(visibleModal);
- }
-});
-
-// Close with Esc key
-document.addEventListener("keydown", (event) => {
- if (event.key === "Escape" && visibleModal != null) {
- closeModal(visibleModal);
- }
-});
-
-// Get scrollbar width
-const getScrollbarWidth = () => {
- // Creating invisible container
- const outer = document.createElement("div");
- outer.style.visibility = "hidden";
- outer.style.overflow = "scroll"; // forcing scrollbar to appear
- outer.style.msOverflowStyle = "scrollbar"; // needed for WinJS apps
- document.body.appendChild(outer);
-
- // Creating inner element and placing it in the container
- const inner = document.createElement("div");
- outer.appendChild(inner);
-
- // Calculating difference between container's full width and the child width
- const scrollbarWidth = outer.offsetWidth - inner.offsetWidth;
-
- // Removing temporary elements from the DOM
- outer.parentNode.removeChild(outer);
-
- return scrollbarWidth;
-};
-
-// Is scrollbar visible
-const isScrollbarVisible = () => {
- return document.body.scrollHeight > screen.height;
-};
\ No newline at end of file
diff --git a/bin/dsp.js b/bin/dsp.js
deleted file mode 100644
index cc4faf0..0000000
--- a/bin/dsp.js
+++ /dev/null
@@ -1,434 +0,0 @@
-// (c) DRELLER
-// https://github.com/Dreller
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// JS Functions to interact with SharePoint Online.
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// Good reference here: https://hevodata.com/learn/sharepoint-api/#s
-//
-
-function dSpInit(){
- window["dreller"]["sp"] = {
- api: dreller.config.rootSiteUrl + "/_api/web/",
- ctx: new SP.ClientContext( dreller.config.rootSiteUrl )
- }
- dreller.sp["lib"] = dreller.sp.ctx.get_web().get_lists().getByTitle( dreller.config.reportListName );
- dStackAdd("dSpGetSiteName");
- dStackAdd("dSpGetCurrentUser");
- dStackAdd("dSpGetLists");
- dStackAdd("dSpGetReports");
- dStackAdd("dSpDrawLists", "dFormListName");
- dStackRun();
-}
-
-function dSpRunInit(){
- window["dreller"]["sp"] = {
- api: dreller.config.rootSiteUrl + "/_api/web/",
- ctx: new SP.ClientContext( dreller.config.rootSiteUrl )
- }
- dreller.sp["lib"] = dreller.sp.ctx.get_web().get_lists().getByTitle( dreller.config.reportListName );
-
- dStackAdd("dSpGetSiteName");
- dStackAdd("dSpGetCurrentUser");
- dStackAdd("dSpGetSingleReport")
- dStackRun();
-}
-
-
-function dSpCall(urlSuffix, args, callback){
- let basics = {
- url: dreller.sp.api + urlSuffix,
- method: "GET",
- async: false,
- headers: {
- "accept": "application/json;odata=verbose",
- "content-type": "application/json;odata=verbose"
- }
- }
- let params = {
- ...basics,
- ...args
- }
- $.ajax(params)
- .done( function ( data ) {
- console.log( data );
- callback( data );
- })
- .fail( function( data ) {
- console.error("> SharePoint API Error");
- console.log( data );
- });
-}
-
-
-function dSpGetLists(){
- dSpCall( "lists", {},
- function( thisData ){
- dreller["_lists"] = [];
- thisData.d.results.forEach( function( thisEntry ){
- if( thisEntry.Hidden != true ){
- (dreller._lists).push( thisEntry );
- }
- } );
- dStackRun();
- }
- )
-}
-
-function dSpGetReports(){
- dSpCall( "lists/getbytitle('" + dreller.config.reportListName + "')/items", {},
- function( thisData ){
- dreller["_reports"] = [];
- thisData.d.results.forEach( function( thisEntry ){
- (dreller._reports).push( thisEntry );
- } );
- dStackRun();
- }
- )
-}
-
-function dSpDrawLists(targetSelect){
- dFormSelectSetOptions( targetSelect, dreller._lists, "Title","Id" );
- dStackRun();
-}
-
-function dSpSelectList(){
- dreller["list"] = {
- id: $("#dFormListName").val(),
- record: (dreller._lists).filter( x=> x.Id == $("#dFormListName").val() )[0]
- }
- dSpDrawReports();
-}
-
-function dSpDrawReports(){
- dFormSelectSetOptions( "dFormReportName", (dreller._reports).filter( x => x.List == $("#dFormListName").val() ), "Title","Id" );
-}
-
-function dSpDrawFields(){
- (dreller.columns).forEach( function( thisColumn ){
- $("select[data-source='col']").append(`${thisColumn.Title} `);
- });
- dStackRun();
-}
-
-function dSpGetSiteName(){
- dSpCall( "title", {},
- function( thisData ){
- dreller["site"] = {
- title: thisData.d.Title
- }
- }
- );
- dStackRun();
-}
-
-function dSpGetCurrentUser(){
- dSpCall( "currentuser", {},
- function(thisData){
- console.log( thisData );
- dreller["usr"] = {
- name: thisData.d.Title,
- email: thisData.d.Email,
- id: thisData.d.Id
- }
- $("#userInfo").html(`Logged as ${dreller.usr.name} on ${dreller.site.title} site.`);
- dStackRun();
- }
- )
-}
-
-function dSpEditReport(){
- window["dreller"]["report"] = {};
- dreller.report = {
- list: $( "#dFormListName" ).val(),
- record: ( dreller._reports ).find( x => x.Id == $( "#dFormReportName" ).val()[0] ),
- id: $( "#dFormReportName" ).val(),
- name: ""
- }
- dreller.report.name = dreller.report.record.Title;
-
- dStackAdd("dSpGetListColumns");
- dStackAdd("dSpDrawReport");
- dStackRun();
-}
-
-function dSpDrawReport(){
- $("#dForm").hide();
- $("#userInfo").html( $("#userInfo").html() + " Data Source: " + dreller.list.record.Title + " Report: " + dreller.report.record.Title );
-
- var oDefn = JSON.parse(dreller.report.record.Definition);
- console.dir( oDefn );
-
- (oDefn.select).forEach(function(thisItem){
- dAddRow("Select", thisItem);
- });
- (oDefn.sort).forEach(function(thisItem){
- dAddRow("Sort", thisItem);
- });
- (oDefn.show).forEach(function(thisItem){
- dAddRow("Show", thisItem);
- });
- // Set Report Options
- $("#rptOptDescription").val(oDefn.description);
- $("#rptOptName").val(dreller.report.name);
-}
-
-function dSpGetListColumns(){
- dreller["columns"] = [];
- dreller["_columns"] = [];
- dreller["_list"] = dreller.sp.ctx.get_web().get_lists().getById(dreller.list.id);
- dreller._columns = (dreller._list).get_fields();
- dreller.sp.ctx.load(dreller._columns);
- dreller.sp.ctx.executeQueryAsync(
- dSpGetListColumns_POST, dSpServerFailed
- );
-}
-
-function dSpGetListColumns_POST(){
- var oEnum = dreller._columns.getEnumerator();
- while( oEnum.moveNext() ){
- var oCol = oEnum.get_current();
- (dreller.columns).push({
- Title: oCol.get_title(),
- StaticName: oCol.get_staticName(),
- InternalName: oCol.get_internalName(),
- TypeString: oCol.get_typeAsString(),
- TypeDisplayName: oCol.get_typeDisplayName(),
- TypeDescription: oCol.get_typeShortDescription(),
- Description: oCol.get_description(),
- Hidden: oCol.get_hidden(),
- Id: oCol.get_id(),
- Indexed: oCol.get_indexed(),
- Group: oCol.get_group()
- });
- console.log(oCol.get_typeAsString());
- }
- (dreller.columns).sort(function(a,b){
- var x = (a["Title"]).toLowerCase();
- var y = (b["Title"]).toLowerCase();
- if( x == y){return 0;}
- if( x > y){return 1;}else{return -1;}
- });
- dSpDrawFields();
-}
-
-function dSpCreateReport(){
- dreller["report"] = {};
- dreller.report = {
- record: {},
- id: -1,
- //name: ($( "#dFormReportNameEntry" ).val()).trim().split(" ").join(".").toUpperCase(),
- name: ($( "#dFormReportNameEntry" ).val()).trim(),
- list: dreller.list.id
- }
-
- var itemCreateInfo = new SP.ListItemCreationInformation();
- this.oListItem = dreller.sp.lib.addItem(itemCreateInfo);
- oListItem.set_item('Title', dreller.report.name);
- oListItem.set_item('List', dreller.report.list);
- oListItem.update();
-
- dreller.sp.ctx.load(oListItem);
- dreller.sp.ctx.executeQueryAsync(
- Function.createDelegate(this, this.dSpCreateReport_POST),
- Function.createDelegate(this, this.dSpServerFailed)
- );
-
-}
-
-function dSpCreateReport_POST(){
- var itemId = oListItem.get_id();
- dreller.report.id = itemId;
- dreller.report.record = {
- Title: this.oListItem.get_item('Title'),
- ID: itemId,
- GUID: "",
- List: this.oListItem.get_item('List'),
- Definition: ""
- };
- (dreller.reports).push( dreller.report.record );
- dStackAdd("dSpGetListColumns");
- dStackAdd("dSpDrawReport");
- dStackRun();
-}
-
-
-function dSpServerFailed(sender, args){
- console.error(args.get_stackTrace());
- alert('Request Failed! ' + args.get_message() + '\n' + args.get_stackTrace());
- }
-
-function dSpSaveReport(){
- // Process Select
- var oSelect = [];
- var ndx = 1;
- $("#tableSelect > tbody > tr").each( function(thisNdx, thisLine){
- var sSelCol = $(this).find("select:first").val();
- if( (sSelCol + "").length == 0 ){return;}
- var sSelOp = $(this).find("select:last").val();
- var sSelVal = $(this).find("input").val();
- var sSelTyp = (dreller.columns.filter( x => x.InternalName == sSelCol )[0]).TypeString;
-
- var oWip = {
- i: ndx,
- col: sSelCol,
- op: sSelOp,
- value: sSelVal,
- type: sSelTyp
- }
-
- oSelect.push(oWip);
- ndx++;
-
- });
- // Process Sort
- var oSort = [];
- var ndx = 1;
- $("#tableSort > tbody > tr").each( function(thisNdx, thisLine){
- var sSorCol = $(this).find("select:first").val();
- if( (sSorCol + "").length == 0 ){return;}
- var sSorOrd = $(this).find("select:last").val();
-
- var oWip = {
- i: ndx,
- col: sSorCol,
- order: sSorOrd
- }
-
- oSort.push(oWip);
- ndx++;
- });
- // Process Show
- var oShow = [];
- var ndx = 1;
- $("#tableShow > tbody > tr").each( function(thisNdx, thisLine){
- var sShoCol = $(this).find("select:first").val();
- if( (sShoCol + "").length == 0 ){return;}
- var sShoTi = $(this).find("input").val();
- var sShoTy = (dreller.columns).filter( x => x.InternalName == $(this).find("select:first").val() )[0].TypeString;
-
- var oWip = {
- i: ndx,
- col: sShoCol,
- title: sShoTi,
- type: sShoTy
- }
-
- oShow.push(oWip);
- ndx++;
- });
-
- // Combine Definition and catch other values to save.
- var oDefn = {
- select: oSelect,
- sort: oSort,
- show: oShow,
- description: ($("#rptOptDescription").val()).trim()
- }
- var sTitle = ($("#rptOptName").val()).trim();
-
- // Get Record from SharePoint
- this.oListItem = dreller.sp.lib.getItemById(dreller.report.id);
- this.oListItem.set_item('Definition', JSON.stringify(oDefn));
- this.oListItem.set_item('Title', sTitle);
- this.oListItem.update();
-
- dreller.sp.ctx.executeQueryAsync(
- Function.createDelegate(this, this.dSpSaveReport_POST),
- Function.createDelegate(this.dSpServerFailed)
- );
-}
-
-function dSpSaveReport_POST(){
- alert("Saved");
-}
-
-function dSpGetSingleReport(){
- dreller["report"] = {
- id: parseInt(dreller.params.rpt),
- name: ""
- }
- console.log(dreller.report);
- this.oListItem = dreller.sp.lib.getItemById(dreller.report.id);
- dreller.sp.ctx.load(oListItem);
- dreller.sp.ctx.executeQueryAsync(
- Function.createDelegate(this, this.dSpGetSingleReport_POST),
- Function.createDelegate(this.dSpServerFailed)
- );
-}
-
-function dSpGetSingleReport_POST(){
- dreller.report["record"] = {
- Definition: oListItem.get_item('Definition')
- };
- dreller.report.name = oListItem.get_item('Title')
-
- dreller["_list"] = dreller.sp.ctx.get_web().get_lists().getById(oListItem.get_item('List'));
- dSpBuildCAML();
-}
-
-function dSpBuildCAML(){
- dreller["caml"] = {
- query: "",
- _api: new SP.CamlQuery()
- };
-
- var oDefn = JSON.parse(dreller.report.record.Definition);
-
- var camlWhere = "";
- (oDefn.select).forEach( function( thisItem ){
- camlWhere += `<${thisItem.op}>${thisItem.value} ${thisItem.op}>`;
- });
-
- var camlOrderBy = "";
- (oDefn.sort).forEach( function( thisItem ){
- camlOrderBy += ` `;
- });
-
- var camlFields = "";
- (oDefn.show).forEach( function( thisItem ){
- camlFields += ` `;
- });
-
- dreller.caml.query = `${camlWhere} `;
- if( camlOrderBy != "" ){
- dreller.caml.query += `${camlOrderBy} `;
- }
-
- dreller.caml.query += ` `;
-
- console.log(dreller.caml.query);
-
- (dreller.caml._api).set_viewXml(dreller.caml.query);
- dreller.caml["_res"] = dreller._list.getItems(dreller.caml._api);
- dreller.sp.ctx.load(dreller.caml._res);
- dreller.sp.ctx.executeQueryAsync(Function.createDelegate(this, dSpBuildCAML_POST), Function.createDelegate(this, dSpServerFailed));
-
-}
-
-function dSpBuildCAML_POST(){
- var oDefn = JSON.parse(dreller.report.record.Definition);
- $("#reportContainerHead").append("");
- (oDefn.show).forEach( function( thisItem ){
- $("#reportContainerHead").append(`${thisItem.title} `);
- });
-
- $("#reportContainerHead").append(" ");
- var e = dreller.caml._res.getEnumerator();
- while( e.moveNext() ){
- var el = e.get_current();
- $("#reportContainerBody").append(``);
- (oDefn.show).forEach( function( thisItem ){
- $("#reportContainerBody").append(`${el.get_item(thisItem.col)} `);
- });
- $("#reportContainerBody").append(` `);
- }
-
-
- $("#reportName").html(dreller.report.name);
- $("#runInfo").html(`Generated by ${dreller.usr.name}, insert date-time here. Source: ${dreller.site.tile} site.`);
- // Add Report Description
- if( oDefn.hasOwnProperty("description") ){
- $("#runInfo").append(`${oDefn.description}
`);
- }
-
-}
\ No newline at end of file
diff --git a/bin/pico.css b/bin/pico.css
deleted file mode 100644
index d41e017..0000000
--- a/bin/pico.css
+++ /dev/null
@@ -1,2665 +0,0 @@
-@charset "UTF-8";
-/*!
- * Pico CSS v1.5.9 (https://picocss.com)
- * Copyright 2019-2023 - Licensed under MIT
- */
-/**
- * Theme: default
- */
-:root {
- --font-family: system-ui, -apple-system, "Segoe UI", "Roboto", "Ubuntu",
- "Cantarell", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
- "Segoe UI Symbol", "Noto Color Emoji";
- --line-height: 1.5;
- --font-weight: 400;
- --font-size: 16px;
- --border-radius: 0.25rem;
- --border-width: 1px;
- --outline-width: 3px;
- --spacing: 1rem;
- --typography-spacing-vertical: 1.5rem;
- --block-spacing-vertical: calc(var(--spacing) * 2);
- --block-spacing-horizontal: var(--spacing);
- --grid-spacing-vertical: 0;
- --grid-spacing-horizontal: var(--spacing);
- --form-element-spacing-vertical: 0.75rem;
- --form-element-spacing-horizontal: 1rem;
- --nav-element-spacing-vertical: 1rem;
- --nav-element-spacing-horizontal: 0.5rem;
- --nav-link-spacing-vertical: 0.5rem;
- --nav-link-spacing-horizontal: 0.5rem;
- --form-label-font-weight: var(--font-weight);
- --transition: 0.2s ease-in-out;
- --modal-overlay-backdrop-filter: blur(0.25rem);
-}
-@media (min-width: 576px) {
- :root {
- --font-size: 17px;
- }
-}
-@media (min-width: 768px) {
- :root {
- --font-size: 18px;
- }
-}
-@media (min-width: 992px) {
- :root {
- --font-size: 19px;
- }
-}
-@media (min-width: 1200px) {
- :root {
- --font-size: 20px;
- }
-}
-
-@media (min-width: 576px) {
- body > header,
- body > main,
- body > footer,
- section {
- --block-spacing-vertical: calc(var(--spacing) * 2.5);
- }
-}
-@media (min-width: 768px) {
- body > header,
- body > main,
- body > footer,
- section {
- --block-spacing-vertical: calc(var(--spacing) * 3);
- }
-}
-@media (min-width: 992px) {
- body > header,
- body > main,
- body > footer,
- section {
- --block-spacing-vertical: calc(var(--spacing) * 3.5);
- }
-}
-@media (min-width: 1200px) {
- body > header,
- body > main,
- body > footer,
- section {
- --block-spacing-vertical: calc(var(--spacing) * 4);
- }
-}
-
-@media (min-width: 576px) {
- article {
- --block-spacing-horizontal: calc(var(--spacing) * 1.25);
- }
-}
-@media (min-width: 768px) {
- article {
- --block-spacing-horizontal: calc(var(--spacing) * 1.5);
- }
-}
-@media (min-width: 992px) {
- article {
- --block-spacing-horizontal: calc(var(--spacing) * 1.75);
- }
-}
-@media (min-width: 1200px) {
- article {
- --block-spacing-horizontal: calc(var(--spacing) * 2);
- }
-}
-
-dialog > article {
- --block-spacing-vertical: calc(var(--spacing) * 2);
- --block-spacing-horizontal: var(--spacing);
-}
-@media (min-width: 576px) {
- dialog > article {
- --block-spacing-vertical: calc(var(--spacing) * 2.5);
- --block-spacing-horizontal: calc(var(--spacing) * 1.25);
- }
-}
-@media (min-width: 768px) {
- dialog > article {
- --block-spacing-vertical: calc(var(--spacing) * 3);
- --block-spacing-horizontal: calc(var(--spacing) * 1.5);
- }
-}
-
-a {
- --text-decoration: none;
-}
-a.secondary, a.contrast {
- --text-decoration: underline;
-}
-
-small {
- --font-size: 0.875em;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- --font-weight: 700;
-}
-
-h1 {
- --font-size: 2rem;
- --typography-spacing-vertical: 3rem;
-}
-
-h2 {
- --font-size: 1.75rem;
- --typography-spacing-vertical: 2.625rem;
-}
-
-h3 {
- --font-size: 1.5rem;
- --typography-spacing-vertical: 2.25rem;
-}
-
-h4 {
- --font-size: 1.25rem;
- --typography-spacing-vertical: 1.874rem;
-}
-
-h5 {
- --font-size: 1.125rem;
- --typography-spacing-vertical: 1.6875rem;
-}
-
-[type=checkbox],
-[type=radio] {
- --border-width: 2px;
-}
-
-[type=checkbox][role=switch] {
- --border-width: 3px;
-}
-
-thead th,
-thead td,
-tfoot th,
-tfoot td {
- --border-width: 3px;
-}
-
-:not(thead, tfoot) > * > td {
- --font-size: 0.875em;
-}
-
-pre,
-code,
-kbd,
-samp {
- --font-family: "Menlo", "Consolas", "Roboto Mono", "Ubuntu Monospace",
- "Noto Mono", "Oxygen Mono", "Liberation Mono", monospace,
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
-}
-
-kbd {
- --font-weight: bolder;
-}
-
-[data-theme=light],
-:root:not([data-theme=dark]) {
- --background-color: #fff;
- --color: hsl(205, 20%, 32%);
- --h1-color: hsl(205, 30%, 15%);
- --h2-color: #24333e;
- --h3-color: hsl(205, 25%, 23%);
- --h4-color: #374956;
- --h5-color: hsl(205, 20%, 32%);
- --h6-color: #4d606d;
- --muted-color: hsl(205, 10%, 50%);
- --muted-border-color: hsl(205, 20%, 94%);
- --primary: hsl(195, 85%, 41%);
- --primary-hover: hsl(195, 90%, 32%);
- --primary-focus: rgba(16, 149, 193, 0.125);
- --primary-inverse: #fff;
- --secondary: hsl(205, 15%, 41%);
- --secondary-hover: hsl(205, 20%, 32%);
- --secondary-focus: rgba(89, 107, 120, 0.125);
- --secondary-inverse: #fff;
- --contrast: hsl(205, 30%, 15%);
- --contrast-hover: #000;
- --contrast-focus: rgba(89, 107, 120, 0.125);
- --contrast-inverse: #fff;
- --mark-background-color: #fff2ca;
- --mark-color: #543a26;
- --ins-color: #388e3c;
- --del-color: #c62828;
- --blockquote-border-color: var(--muted-border-color);
- --blockquote-footer-color: var(--muted-color);
- --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- --form-element-background-color: transparent;
- --form-element-border-color: hsl(205, 14%, 68%);
- --form-element-color: var(--color);
- --form-element-placeholder-color: var(--muted-color);
- --form-element-active-background-color: transparent;
- --form-element-active-border-color: var(--primary);
- --form-element-focus-color: var(--primary-focus);
- --form-element-disabled-background-color: hsl(205, 18%, 86%);
- --form-element-disabled-border-color: hsl(205, 14%, 68%);
- --form-element-disabled-opacity: 0.5;
- --form-element-invalid-border-color: #c62828;
- --form-element-invalid-active-border-color: #d32f2f;
- --form-element-invalid-focus-color: rgba(211, 47, 47, 0.125);
- --form-element-valid-border-color: #388e3c;
- --form-element-valid-active-border-color: #43a047;
- --form-element-valid-focus-color: rgba(67, 160, 71, 0.125);
- --switch-background-color: hsl(205, 16%, 77%);
- --switch-color: var(--primary-inverse);
- --switch-checked-background-color: var(--primary);
- --range-border-color: hsl(205, 18%, 86%);
- --range-active-border-color: hsl(205, 16%, 77%);
- --range-thumb-border-color: var(--background-color);
- --range-thumb-color: var(--secondary);
- --range-thumb-hover-color: var(--secondary-hover);
- --range-thumb-active-color: var(--primary);
- --table-border-color: var(--muted-border-color);
- --table-row-stripped-background-color: #f6f8f9;
- --code-background-color: hsl(205, 20%, 94%);
- --code-color: var(--muted-color);
- --code-kbd-background-color: var(--contrast);
- --code-kbd-color: var(--contrast-inverse);
- --code-tag-color: hsl(330, 40%, 50%);
- --code-property-color: hsl(185, 40%, 40%);
- --code-value-color: hsl(40, 20%, 50%);
- --code-comment-color: hsl(205, 14%, 68%);
- --accordion-border-color: var(--muted-border-color);
- --accordion-close-summary-color: var(--color);
- --accordion-open-summary-color: var(--muted-color);
- --card-background-color: var(--background-color);
- --card-border-color: var(--muted-border-color);
- --card-box-shadow:
- 0.0145rem 0.029rem 0.174rem rgba(27, 40, 50, 0.01698),
- 0.0335rem 0.067rem 0.402rem rgba(27, 40, 50, 0.024),
- 0.0625rem 0.125rem 0.75rem rgba(27, 40, 50, 0.03),
- 0.1125rem 0.225rem 1.35rem rgba(27, 40, 50, 0.036),
- 0.2085rem 0.417rem 2.502rem rgba(27, 40, 50, 0.04302),
- 0.5rem 1rem 6rem rgba(27, 40, 50, 0.06),
- 0 0 0 0.0625rem rgba(27, 40, 50, 0.015);
- --card-sectionning-background-color: #fbfbfc;
- --dropdown-background-color: #fbfbfc;
- --dropdown-border-color: #e1e6eb;
- --dropdown-box-shadow: var(--card-box-shadow);
- --dropdown-color: var(--color);
- --dropdown-hover-background-color: hsl(205, 20%, 94%);
- --modal-overlay-background-color: rgba(213, 220, 226, 0.7);
- --progress-background-color: hsl(205, 18%, 86%);
- --progress-color: var(--primary);
- --loading-spinner-opacity: 0.5;
- --tooltip-background-color: var(--contrast);
- --tooltip-color: var(--contrast-inverse);
- --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
- --icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
- --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(198, 40, 40)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
- --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
- --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
- --icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(56, 142, 60)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
- color-scheme: light;
-}
-
-@media only screen and (prefers-color-scheme: dark) {
- :root:not([data-theme]) {
- --background-color: #11191f;
- --color: hsl(205, 16%, 77%);
- --h1-color: hsl(205, 20%, 94%);
- --h2-color: #e1e6eb;
- --h3-color: hsl(205, 18%, 86%);
- --h4-color: #c8d1d8;
- --h5-color: hsl(205, 16%, 77%);
- --h6-color: #afbbc4;
- --muted-color: hsl(205, 10%, 50%);
- --muted-border-color: #1f2d38;
- --primary: hsl(195, 85%, 41%);
- --primary-hover: hsl(195, 80%, 50%);
- --primary-focus: rgba(16, 149, 193, 0.25);
- --primary-inverse: #fff;
- --secondary: hsl(205, 15%, 41%);
- --secondary-hover: hsl(205, 10%, 50%);
- --secondary-focus: rgba(115, 130, 140, 0.25);
- --secondary-inverse: #fff;
- --contrast: hsl(205, 20%, 94%);
- --contrast-hover: #fff;
- --contrast-focus: rgba(115, 130, 140, 0.25);
- --contrast-inverse: #000;
- --mark-background-color: #d1c284;
- --mark-color: #11191f;
- --ins-color: #388e3c;
- --del-color: #c62828;
- --blockquote-border-color: var(--muted-border-color);
- --blockquote-footer-color: var(--muted-color);
- --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- --form-element-background-color: #11191f;
- --form-element-border-color: #374956;
- --form-element-color: var(--color);
- --form-element-placeholder-color: var(--muted-color);
- --form-element-active-background-color: var(--form-element-background-color);
- --form-element-active-border-color: var(--primary);
- --form-element-focus-color: var(--primary-focus);
- --form-element-disabled-background-color: hsl(205, 25%, 23%);
- --form-element-disabled-border-color: hsl(205, 20%, 32%);
- --form-element-disabled-opacity: 0.5;
- --form-element-invalid-border-color: #b71c1c;
- --form-element-invalid-active-border-color: #c62828;
- --form-element-invalid-focus-color: rgba(198, 40, 40, 0.25);
- --form-element-valid-border-color: #2e7d32;
- --form-element-valid-active-border-color: #388e3c;
- --form-element-valid-focus-color: rgba(56, 142, 60, 0.25);
- --switch-background-color: #374956;
- --switch-color: var(--primary-inverse);
- --switch-checked-background-color: var(--primary);
- --range-border-color: #24333e;
- --range-active-border-color: hsl(205, 25%, 23%);
- --range-thumb-border-color: var(--background-color);
- --range-thumb-color: var(--secondary);
- --range-thumb-hover-color: var(--secondary-hover);
- --range-thumb-active-color: var(--primary);
- --table-border-color: var(--muted-border-color);
- --table-row-stripped-background-color: rgba(115, 130, 140, 0.05);
- --code-background-color: #18232c;
- --code-color: var(--muted-color);
- --code-kbd-background-color: var(--contrast);
- --code-kbd-color: var(--contrast-inverse);
- --code-tag-color: hsl(330, 30%, 50%);
- --code-property-color: hsl(185, 30%, 50%);
- --code-value-color: hsl(40, 10%, 50%);
- --code-comment-color: #4d606d;
- --accordion-border-color: var(--muted-border-color);
- --accordion-active-summary-color: var(--primary);
- --accordion-close-summary-color: var(--color);
- --accordion-open-summary-color: var(--muted-color);
- --card-background-color: #141e26;
- --card-border-color: var(--card-background-color);
- --card-box-shadow:
- 0.0145rem 0.029rem 0.174rem rgba(0, 0, 0, 0.01698),
- 0.0335rem 0.067rem 0.402rem rgba(0, 0, 0, 0.024),
- 0.0625rem 0.125rem 0.75rem rgba(0, 0, 0, 0.03),
- 0.1125rem 0.225rem 1.35rem rgba(0, 0, 0, 0.036),
- 0.2085rem 0.417rem 2.502rem rgba(0, 0, 0, 0.04302),
- 0.5rem 1rem 6rem rgba(0, 0, 0, 0.06),
- 0 0 0 0.0625rem rgba(0, 0, 0, 0.015);
- --card-sectionning-background-color: #18232c;
- --dropdown-background-color: hsl(205, 30%, 15%);
- --dropdown-border-color: #24333e;
- --dropdown-box-shadow: var(--card-box-shadow);
- --dropdown-color: var(--color);
- --dropdown-hover-background-color: rgba(36, 51, 62, 0.75);
- --modal-overlay-background-color: rgba(36, 51, 62, 0.8);
- --progress-background-color: #24333e;
- --progress-color: var(--primary);
- --loading-spinner-opacity: 0.5;
- --tooltip-background-color: var(--contrast);
- --tooltip-color: var(--contrast-inverse);
- --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
- --icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
- --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
- --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
- --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
- --icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
- color-scheme: dark;
- }
-}
-[data-theme=dark] {
- --background-color: #11191f;
- --color: hsl(205, 16%, 77%);
- --h1-color: hsl(205, 20%, 94%);
- --h2-color: #e1e6eb;
- --h3-color: hsl(205, 18%, 86%);
- --h4-color: #c8d1d8;
- --h5-color: hsl(205, 16%, 77%);
- --h6-color: #afbbc4;
- --muted-color: hsl(205, 10%, 50%);
- --muted-border-color: #1f2d38;
- --primary: hsl(195, 85%, 41%);
- --primary-hover: hsl(195, 80%, 50%);
- --primary-focus: rgba(16, 149, 193, 0.25);
- --primary-inverse: #fff;
- --secondary: hsl(205, 15%, 41%);
- --secondary-hover: hsl(205, 10%, 50%);
- --secondary-focus: rgba(115, 130, 140, 0.25);
- --secondary-inverse: #fff;
- --contrast: hsl(205, 20%, 94%);
- --contrast-hover: #fff;
- --contrast-focus: rgba(115, 130, 140, 0.25);
- --contrast-inverse: #000;
- --mark-background-color: #d1c284;
- --mark-color: #11191f;
- --ins-color: #388e3c;
- --del-color: #c62828;
- --blockquote-border-color: var(--muted-border-color);
- --blockquote-footer-color: var(--muted-color);
- --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
- --form-element-background-color: #11191f;
- --form-element-border-color: #374956;
- --form-element-color: var(--color);
- --form-element-placeholder-color: var(--muted-color);
- --form-element-active-background-color: var(--form-element-background-color);
- --form-element-active-border-color: var(--primary);
- --form-element-focus-color: var(--primary-focus);
- --form-element-disabled-background-color: hsl(205, 25%, 23%);
- --form-element-disabled-border-color: hsl(205, 20%, 32%);
- --form-element-disabled-opacity: 0.5;
- --form-element-invalid-border-color: #b71c1c;
- --form-element-invalid-active-border-color: #c62828;
- --form-element-invalid-focus-color: rgba(198, 40, 40, 0.25);
- --form-element-valid-border-color: #2e7d32;
- --form-element-valid-active-border-color: #388e3c;
- --form-element-valid-focus-color: rgba(56, 142, 60, 0.25);
- --switch-background-color: #374956;
- --switch-color: var(--primary-inverse);
- --switch-checked-background-color: var(--primary);
- --range-border-color: #24333e;
- --range-active-border-color: hsl(205, 25%, 23%);
- --range-thumb-border-color: var(--background-color);
- --range-thumb-color: var(--secondary);
- --range-thumb-hover-color: var(--secondary-hover);
- --range-thumb-active-color: var(--primary);
- --table-border-color: var(--muted-border-color);
- --table-row-stripped-background-color: rgba(115, 130, 140, 0.05);
- --code-background-color: #18232c;
- --code-color: var(--muted-color);
- --code-kbd-background-color: var(--contrast);
- --code-kbd-color: var(--contrast-inverse);
- --code-tag-color: hsl(330, 30%, 50%);
- --code-property-color: hsl(185, 30%, 50%);
- --code-value-color: hsl(40, 10%, 50%);
- --code-comment-color: #4d606d;
- --accordion-border-color: var(--muted-border-color);
- --accordion-active-summary-color: var(--primary);
- --accordion-close-summary-color: var(--color);
- --accordion-open-summary-color: var(--muted-color);
- --card-background-color: #141e26;
- --card-border-color: var(--card-background-color);
- --card-box-shadow:
- 0.0145rem 0.029rem 0.174rem rgba(0, 0, 0, 0.01698),
- 0.0335rem 0.067rem 0.402rem rgba(0, 0, 0, 0.024),
- 0.0625rem 0.125rem 0.75rem rgba(0, 0, 0, 0.03),
- 0.1125rem 0.225rem 1.35rem rgba(0, 0, 0, 0.036),
- 0.2085rem 0.417rem 2.502rem rgba(0, 0, 0, 0.04302),
- 0.5rem 1rem 6rem rgba(0, 0, 0, 0.06),
- 0 0 0 0.0625rem rgba(0, 0, 0, 0.015);
- --card-sectionning-background-color: #18232c;
- --dropdown-background-color: hsl(205, 30%, 15%);
- --dropdown-border-color: #24333e;
- --dropdown-box-shadow: var(--card-box-shadow);
- --dropdown-color: var(--color);
- --dropdown-hover-background-color: rgba(36, 51, 62, 0.75);
- --modal-overlay-background-color: rgba(36, 51, 62, 0.8);
- --progress-background-color: #24333e;
- --progress-color: var(--primary);
- --loading-spinner-opacity: 0.5;
- --tooltip-background-color: var(--contrast);
- --tooltip-color: var(--contrast-inverse);
- --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
- --icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
- --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
- --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
- --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
- --icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
- --icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
- color-scheme: dark;
-}
-
-progress,
-[type=checkbox],
-[type=radio],
-[type=range] {
- accent-color: var(--primary);
-}
-
-/**
- * Document
- * Content-box & Responsive typography
- */
-*,
-*::before,
-*::after {
- box-sizing: border-box;
- background-repeat: no-repeat;
-}
-
-::before,
-::after {
- text-decoration: inherit;
- vertical-align: inherit;
-}
-
-:where(:root) {
- -webkit-tap-highlight-color: transparent;
- -webkit-text-size-adjust: 100%;
- -moz-text-size-adjust: 100%;
- text-size-adjust: 100%;
- background-color: var(--background-color);
- color: var(--color);
- font-weight: var(--font-weight);
- font-size: var(--font-size);
- line-height: var(--line-height);
- font-family: var(--font-family);
- text-rendering: optimizeLegibility;
- overflow-wrap: break-word;
- cursor: default;
- -moz-tab-size: 4;
- -o-tab-size: 4;
- tab-size: 4;
-}
-
-/**
- * Sectioning
- * Container and responsive spacings for header, main, footer
- */
-main {
- display: block;
-}
-
-body {
- width: 100%;
- margin: 0;
-}
-body > header,
-body > main,
-body > footer {
- width: 100%;
- margin-right: auto;
- margin-left: auto;
- padding: var(--block-spacing-vertical) 0;
-}
-
-/**
-* Container
-*/
-.container,
-.container-fluid {
- width: 100%;
- margin-right: auto;
- margin-left: auto;
- padding-right: var(--spacing);
- padding-left: var(--spacing);
-}
-
-@media (min-width: 576px) {
- .container {
- max-width: 510px;
- padding-right: 0;
- padding-left: 0;
- }
-}
-@media (min-width: 768px) {
- .container {
- max-width: 700px;
- }
-}
-@media (min-width: 992px) {
- .container {
- max-width: 920px;
- }
-}
-@media (min-width: 1200px) {
- .container {
- max-width: 1130px;
- }
-}
-
-/**
- * Section
- * Responsive spacings for section
- */
-section {
- margin-bottom: var(--block-spacing-vertical);
-}
-
-/**
-* Grid
-* Minimal grid system with auto-layout columns
-*/
-.grid {
- grid-column-gap: var(--grid-spacing-horizontal);
- grid-row-gap: var(--grid-spacing-vertical);
- display: grid;
- grid-template-columns: 1fr;
- margin: 0;
-}
-@media (min-width: 992px) {
- .grid {
- grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
- }
-}
-.grid > * {
- min-width: 0;
-}
-
-/**
- * Horizontal scroller ()
- */
-figure {
- display: block;
- margin: 0;
- padding: 0;
- overflow-x: auto;
-}
-figure figcaption {
- padding: calc(var(--spacing) * 0.5) 0;
- color: var(--muted-color);
-}
-
-/**
- * Typography
- */
-b,
-strong {
- font-weight: bolder;
-}
-
-sub,
-sup {
- position: relative;
- font-size: 0.75em;
- line-height: 0;
- vertical-align: baseline;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-sup {
- top: -0.5em;
-}
-
-address,
-blockquote,
-dl,
-figure,
-form,
-ol,
-p,
-pre,
-table,
-ul {
- margin-top: 0;
- margin-bottom: var(--typography-spacing-vertical);
- color: var(--color);
- font-style: normal;
- font-weight: var(--font-weight);
- font-size: var(--font-size);
-}
-
-a,
-[role=link] {
- --color: var(--primary);
- --background-color: transparent;
- outline: none;
- background-color: var(--background-color);
- color: var(--color);
- -webkit-text-decoration: var(--text-decoration);
- text-decoration: var(--text-decoration);
- transition: background-color var(--transition), color var(--transition), box-shadow var(--transition), -webkit-text-decoration var(--transition);
- transition: background-color var(--transition), color var(--transition), text-decoration var(--transition), box-shadow var(--transition);
- transition: background-color var(--transition), color var(--transition), text-decoration var(--transition), box-shadow var(--transition), -webkit-text-decoration var(--transition);
-}
-a:is([aria-current], :hover, :active, :focus),
-[role=link]:is([aria-current], :hover, :active, :focus) {
- --color: var(--primary-hover);
- --text-decoration: underline;
-}
-a:focus,
-[role=link]:focus {
- --background-color: var(--primary-focus);
-}
-a.secondary,
-[role=link].secondary {
- --color: var(--secondary);
-}
-a.secondary:is([aria-current], :hover, :active, :focus),
-[role=link].secondary:is([aria-current], :hover, :active, :focus) {
- --color: var(--secondary-hover);
-}
-a.secondary:focus,
-[role=link].secondary:focus {
- --background-color: var(--secondary-focus);
-}
-a.contrast,
-[role=link].contrast {
- --color: var(--contrast);
-}
-a.contrast:is([aria-current], :hover, :active, :focus),
-[role=link].contrast:is([aria-current], :hover, :active, :focus) {
- --color: var(--contrast-hover);
-}
-a.contrast:focus,
-[role=link].contrast:focus {
- --background-color: var(--contrast-focus);
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- margin-top: 0;
- margin-bottom: var(--typography-spacing-vertical);
- color: var(--color);
- font-weight: var(--font-weight);
- font-size: var(--font-size);
- font-family: var(--font-family);
-}
-
-h1 {
- --color: var(--h1-color);
-}
-
-h2 {
- --color: var(--h2-color);
-}
-
-h3 {
- --color: var(--h3-color);
-}
-
-h4 {
- --color: var(--h4-color);
-}
-
-h5 {
- --color: var(--h5-color);
-}
-
-h6 {
- --color: var(--h6-color);
-}
-
-:where(address, blockquote, dl, figure, form, ol, p, pre, table, ul) ~ :is(h1, h2, h3, h4, h5, h6) {
- margin-top: var(--typography-spacing-vertical);
-}
-
-hgroup,
-.headings {
- margin-bottom: var(--typography-spacing-vertical);
-}
-hgroup > *,
-.headings > * {
- margin-bottom: 0;
-}
-hgroup > *:last-child,
-.headings > *:last-child {
- --color: var(--muted-color);
- --font-weight: unset;
- font-size: 1rem;
- font-family: unset;
-}
-
-p {
- margin-bottom: var(--typography-spacing-vertical);
-}
-
-small {
- font-size: var(--font-size);
-}
-
-:where(dl, ol, ul) {
- padding-right: 0;
- padding-left: var(--spacing);
- -webkit-padding-start: var(--spacing);
- padding-inline-start: var(--spacing);
- -webkit-padding-end: 0;
- padding-inline-end: 0;
-}
-:where(dl, ol, ul) li {
- margin-bottom: calc(var(--typography-spacing-vertical) * 0.25);
-}
-
-:where(dl, ol, ul) :is(dl, ol, ul) {
- margin: 0;
- margin-top: calc(var(--typography-spacing-vertical) * 0.25);
-}
-
-ul li {
- list-style: square;
-}
-
-mark {
- padding: 0.125rem 0.25rem;
- background-color: var(--mark-background-color);
- color: var(--mark-color);
- vertical-align: baseline;
-}
-
-blockquote {
- display: block;
- margin: var(--typography-spacing-vertical) 0;
- padding: var(--spacing);
- border-right: none;
- border-left: 0.25rem solid var(--blockquote-border-color);
- -webkit-border-start: 0.25rem solid var(--blockquote-border-color);
- border-inline-start: 0.25rem solid var(--blockquote-border-color);
- -webkit-border-end: none;
- border-inline-end: none;
-}
-blockquote footer {
- margin-top: calc(var(--typography-spacing-vertical) * 0.5);
- color: var(--blockquote-footer-color);
-}
-
-abbr[title] {
- border-bottom: 1px dotted;
- text-decoration: none;
- cursor: help;
-}
-
-ins {
- color: var(--ins-color);
- text-decoration: none;
-}
-
-del {
- color: var(--del-color);
-}
-
-::-moz-selection {
- background-color: var(--primary-focus);
-}
-
-::selection {
- background-color: var(--primary-focus);
-}
-
-/**
- * Embedded content
- */
-:where(audio, canvas, iframe, img, svg, video) {
- vertical-align: middle;
-}
-
-audio,
-video {
- display: inline-block;
-}
-
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-
-:where(iframe) {
- border-style: none;
-}
-
-img {
- max-width: 100%;
- height: auto;
- border-style: none;
-}
-
-:where(svg:not([fill])) {
- fill: currentColor;
-}
-
-svg:not(:root) {
- overflow: hidden;
-}
-
-/**
- * Button
- */
-button {
- margin: 0;
- overflow: visible;
- font-family: inherit;
- text-transform: none;
-}
-
-button,
-[type=button],
-[type=reset],
-[type=submit] {
- -webkit-appearance: button;
-}
-
-button {
- display: block;
- width: 100%;
- margin-bottom: var(--spacing);
-}
-
-[role=button] {
- display: inline-block;
- text-decoration: none;
-}
-
-button,
-input[type=submit],
-input[type=button],
-input[type=reset],
-[role=button] {
- --background-color: var(--primary);
- --border-color: var(--primary);
- --color: var(--primary-inverse);
- --box-shadow: var(--button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
- padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
- border: var(--border-width) solid var(--border-color);
- border-radius: var(--border-radius);
- outline: none;
- background-color: var(--background-color);
- box-shadow: var(--box-shadow);
- color: var(--color);
- font-weight: var(--font-weight);
- font-size: 1rem;
- line-height: var(--line-height);
- text-align: center;
- cursor: pointer;
- transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
-}
-button:is([aria-current], :hover, :active, :focus),
-input[type=submit]:is([aria-current], :hover, :active, :focus),
-input[type=button]:is([aria-current], :hover, :active, :focus),
-input[type=reset]:is([aria-current], :hover, :active, :focus),
-[role=button]:is([aria-current], :hover, :active, :focus) {
- --background-color: var(--primary-hover);
- --border-color: var(--primary-hover);
- --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
- --color: var(--primary-inverse);
-}
-button:focus,
-input[type=submit]:focus,
-input[type=button]:focus,
-input[type=reset]:focus,
-[role=button]:focus {
- --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
- 0 0 0 var(--outline-width) var(--primary-focus);
-}
-
-:is(button, input[type=submit], input[type=button], [role=button]).secondary,
-input[type=reset] {
- --background-color: var(--secondary);
- --border-color: var(--secondary);
- --color: var(--secondary-inverse);
- cursor: pointer;
-}
-:is(button, input[type=submit], input[type=button], [role=button]).secondary:is([aria-current], :hover, :active, :focus),
-input[type=reset]:is([aria-current], :hover, :active, :focus) {
- --background-color: var(--secondary-hover);
- --border-color: var(--secondary-hover);
- --color: var(--secondary-inverse);
-}
-:is(button, input[type=submit], input[type=button], [role=button]).secondary:focus,
-input[type=reset]:focus {
- --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
- 0 0 0 var(--outline-width) var(--secondary-focus);
-}
-
-:is(button, input[type=submit], input[type=button], [role=button]).contrast {
- --background-color: var(--contrast);
- --border-color: var(--contrast);
- --color: var(--contrast-inverse);
-}
-:is(button, input[type=submit], input[type=button], [role=button]).contrast:is([aria-current], :hover, :active, :focus) {
- --background-color: var(--contrast-hover);
- --border-color: var(--contrast-hover);
- --color: var(--contrast-inverse);
-}
-:is(button, input[type=submit], input[type=button], [role=button]).contrast:focus {
- --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
- 0 0 0 var(--outline-width) var(--contrast-focus);
-}
-
-:is(button, input[type=submit], input[type=button], [role=button]).outline,
-input[type=reset].outline {
- --background-color: transparent;
- --color: var(--primary);
-}
-:is(button, input[type=submit], input[type=button], [role=button]).outline:is([aria-current], :hover, :active, :focus),
-input[type=reset].outline:is([aria-current], :hover, :active, :focus) {
- --background-color: transparent;
- --color: var(--primary-hover);
-}
-
-:is(button, input[type=submit], input[type=button], [role=button]).outline.secondary,
-input[type=reset].outline {
- --color: var(--secondary);
-}
-:is(button, input[type=submit], input[type=button], [role=button]).outline.secondary:is([aria-current], :hover, :active, :focus),
-input[type=reset].outline:is([aria-current], :hover, :active, :focus) {
- --color: var(--secondary-hover);
-}
-
-:is(button, input[type=submit], input[type=button], [role=button]).outline.contrast {
- --color: var(--contrast);
-}
-:is(button, input[type=submit], input[type=button], [role=button]).outline.contrast:is([aria-current], :hover, :active, :focus) {
- --color: var(--contrast-hover);
-}
-
-:where(button, [type=submit], [type=button], [type=reset], [role=button])[disabled],
-:where(fieldset[disabled]) :is(button, [type=submit], [type=button], [type=reset], [role=button]),
-a[role=button]:not([href]) {
- opacity: 0.5;
- pointer-events: none;
-}
-
-/**
- * Form elements
- */
-input,
-optgroup,
-select,
-textarea {
- margin: 0;
- font-size: 1rem;
- line-height: var(--line-height);
- font-family: inherit;
- letter-spacing: inherit;
-}
-
-input {
- overflow: visible;
-}
-
-select {
- text-transform: none;
-}
-
-legend {
- max-width: 100%;
- padding: 0;
- color: inherit;
- white-space: normal;
-}
-
-textarea {
- overflow: auto;
-}
-
-[type=checkbox],
-[type=radio] {
- padding: 0;
-}
-
-::-webkit-inner-spin-button,
-::-webkit-outer-spin-button {
- height: auto;
-}
-
-[type=search] {
- -webkit-appearance: textfield;
- outline-offset: -2px;
-}
-
-[type=search]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-::-webkit-file-upload-button {
- -webkit-appearance: button;
- font: inherit;
-}
-
-::-moz-focus-inner {
- padding: 0;
- border-style: none;
-}
-
-:-moz-focusring {
- outline: none;
-}
-
-:-moz-ui-invalid {
- box-shadow: none;
-}
-
-::-ms-expand {
- display: none;
-}
-
-[type=file],
-[type=range] {
- padding: 0;
- border-width: 0;
-}
-
-input:not([type=checkbox], [type=radio], [type=range]) {
- height: calc(1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 + var(--border-width) * 2);
-}
-
-fieldset {
- margin: 0;
- margin-bottom: var(--spacing);
- padding: 0;
- border: 0;
-}
-
-label,
-fieldset legend {
- display: block;
- margin-bottom: calc(var(--spacing) * 0.25);
- font-weight: var(--form-label-font-weight, var(--font-weight));
-}
-
-input:not([type=checkbox], [type=radio]),
-select,
-textarea {
- width: 100%;
-}
-
-input:not([type=checkbox], [type=radio], [type=range], [type=file]),
-select,
-textarea {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
-}
-
-input,
-select,
-textarea {
- --background-color: var(--form-element-background-color);
- --border-color: var(--form-element-border-color);
- --color: var(--form-element-color);
- --box-shadow: none;
- border: var(--border-width) solid var(--border-color);
- border-radius: var(--border-radius);
- outline: none;
- background-color: var(--background-color);
- box-shadow: var(--box-shadow);
- color: var(--color);
- font-weight: var(--font-weight);
- transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
-}
-
-input:not([type=submit], [type=button], [type=reset], [type=checkbox], [type=radio], [readonly]):is(:active, :focus),
-:where(select, textarea):is(:active, :focus) {
- --background-color: var(--form-element-active-background-color);
-}
-
-input:not([type=submit], [type=button], [type=reset], [role=switch], [readonly]):is(:active, :focus),
-:where(select, textarea):is(:active, :focus) {
- --border-color: var(--form-element-active-border-color);
-}
-
-input:not([type=submit], [type=button], [type=reset], [type=range], [type=file], [readonly]):focus,
-select:focus,
-textarea:focus {
- --box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color);
-}
-
-input:not([type=submit], [type=button], [type=reset])[disabled],
-select[disabled],
-textarea[disabled],
-:where(fieldset[disabled]) :is(input:not([type=submit], [type=button], [type=reset]), select, textarea) {
- --background-color: var(--form-element-disabled-background-color);
- --border-color: var(--form-element-disabled-border-color);
- opacity: var(--form-element-disabled-opacity);
- pointer-events: none;
-}
-
-:where(input, select, textarea):not([type=checkbox], [type=radio], [type=date], [type=datetime-local], [type=month], [type=time], [type=week])[aria-invalid] {
- padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem) !important;
- padding-left: var(--form-element-spacing-horizontal);
- -webkit-padding-start: var(--form-element-spacing-horizontal) !important;
- padding-inline-start: var(--form-element-spacing-horizontal) !important;
- -webkit-padding-end: calc(var(--form-element-spacing-horizontal) + 1.5rem) !important;
- padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem) !important;
- background-position: center right 0.75rem;
- background-size: 1rem auto;
- background-repeat: no-repeat;
-}
-:where(input, select, textarea):not([type=checkbox], [type=radio], [type=date], [type=datetime-local], [type=month], [type=time], [type=week])[aria-invalid=false] {
- background-image: var(--icon-valid);
-}
-:where(input, select, textarea):not([type=checkbox], [type=radio], [type=date], [type=datetime-local], [type=month], [type=time], [type=week])[aria-invalid=true] {
- background-image: var(--icon-invalid);
-}
-:where(input, select, textarea)[aria-invalid=false] {
- --border-color: var(--form-element-valid-border-color);
-}
-:where(input, select, textarea)[aria-invalid=false]:is(:active, :focus) {
- --border-color: var(--form-element-valid-active-border-color) !important;
- --box-shadow: 0 0 0 var(--outline-width) var(--form-element-valid-focus-color) !important;
-}
-:where(input, select, textarea)[aria-invalid=true] {
- --border-color: var(--form-element-invalid-border-color);
-}
-:where(input, select, textarea)[aria-invalid=true]:is(:active, :focus) {
- --border-color: var(--form-element-invalid-active-border-color) !important;
- --box-shadow: 0 0 0 var(--outline-width) var(--form-element-invalid-focus-color) !important;
-}
-
-[dir=rtl] :where(input, select, textarea):not([type=checkbox], [type=radio]):is([aria-invalid], [aria-invalid=true], [aria-invalid=false]) {
- background-position: center left 0.75rem;
-}
-
-input::placeholder,
-input::-webkit-input-placeholder,
-textarea::placeholder,
-textarea::-webkit-input-placeholder,
-select:invalid {
- color: var(--form-element-placeholder-color);
- opacity: 1;
-}
-
-input:not([type=checkbox], [type=radio]),
-select,
-textarea {
- margin-bottom: var(--spacing);
-}
-
-select::-ms-expand {
- border: 0;
- background-color: transparent;
-}
-select:not([multiple], [size]) {
- padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem);
- padding-left: var(--form-element-spacing-horizontal);
- -webkit-padding-start: var(--form-element-spacing-horizontal);
- padding-inline-start: var(--form-element-spacing-horizontal);
- -webkit-padding-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);
- padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);
- background-image: var(--icon-chevron);
- background-position: center right 0.75rem;
- background-size: 1rem auto;
- background-repeat: no-repeat;
-}
-
-[dir=rtl] select:not([multiple], [size]) {
- background-position: center left 0.75rem;
-}
-
-:where(input, select, textarea, .grid) + small {
- display: block;
- width: 100%;
- margin-top: calc(var(--spacing) * -0.75);
- margin-bottom: var(--spacing);
- color: var(--muted-color);
-}
-
-label > :where(input, select, textarea) {
- margin-top: calc(var(--spacing) * 0.25);
-}
-
-/**
- * Form elements
- * Checkboxes & Radios
- */
-[type=checkbox],
-[type=radio] {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- width: 1.25em;
- height: 1.25em;
- margin-top: -0.125em;
- margin-right: 0.375em;
- margin-left: 0;
- -webkit-margin-start: 0;
- margin-inline-start: 0;
- -webkit-margin-end: 0.375em;
- margin-inline-end: 0.375em;
- border-width: var(--border-width);
- font-size: inherit;
- vertical-align: middle;
- cursor: pointer;
-}
-[type=checkbox]::-ms-check,
-[type=radio]::-ms-check {
- display: none;
-}
-[type=checkbox]:checked, [type=checkbox]:checked:active, [type=checkbox]:checked:focus,
-[type=radio]:checked,
-[type=radio]:checked:active,
-[type=radio]:checked:focus {
- --background-color: var(--primary);
- --border-color: var(--primary);
- background-image: var(--icon-checkbox);
- background-position: center;
- background-size: 0.75em auto;
- background-repeat: no-repeat;
-}
-[type=checkbox] ~ label,
-[type=radio] ~ label {
- display: inline-block;
- margin-right: 0.375em;
- margin-bottom: 0;
- cursor: pointer;
-}
-
-[type=checkbox]:indeterminate {
- --background-color: var(--primary);
- --border-color: var(--primary);
- background-image: var(--icon-minus);
- background-position: center;
- background-size: 0.75em auto;
- background-repeat: no-repeat;
-}
-
-[type=radio] {
- border-radius: 50%;
-}
-[type=radio]:checked, [type=radio]:checked:active, [type=radio]:checked:focus {
- --background-color: var(--primary-inverse);
- border-width: 0.35em;
- background-image: none;
-}
-
-[type=checkbox][role=switch] {
- --background-color: var(--switch-background-color);
- --border-color: var(--switch-background-color);
- --color: var(--switch-color);
- width: 2.25em;
- height: 1.25em;
- border: var(--border-width) solid var(--border-color);
- border-radius: 1.25em;
- background-color: var(--background-color);
- line-height: 1.25em;
-}
-[type=checkbox][role=switch]:focus {
- --background-color: var(--switch-background-color);
- --border-color: var(--switch-background-color);
-}
-[type=checkbox][role=switch]:checked {
- --background-color: var(--switch-checked-background-color);
- --border-color: var(--switch-checked-background-color);
-}
-[type=checkbox][role=switch]:before {
- display: block;
- width: calc(1.25em - (var(--border-width) * 2));
- height: 100%;
- border-radius: 50%;
- background-color: var(--color);
- content: "";
- transition: margin 0.1s ease-in-out;
-}
-[type=checkbox][role=switch]:checked {
- background-image: none;
-}
-[type=checkbox][role=switch]:checked::before {
- margin-left: calc(1.125em - var(--border-width));
- -webkit-margin-start: calc(1.125em - var(--border-width));
- margin-inline-start: calc(1.125em - var(--border-width));
-}
-
-[type=checkbox][aria-invalid=false],
-[type=checkbox]:checked[aria-invalid=false],
-[type=radio][aria-invalid=false],
-[type=radio]:checked[aria-invalid=false],
-[type=checkbox][role=switch][aria-invalid=false],
-[type=checkbox][role=switch]:checked[aria-invalid=false] {
- --border-color: var(--form-element-valid-border-color);
-}
-[type=checkbox][aria-invalid=true],
-[type=checkbox]:checked[aria-invalid=true],
-[type=radio][aria-invalid=true],
-[type=radio]:checked[aria-invalid=true],
-[type=checkbox][role=switch][aria-invalid=true],
-[type=checkbox][role=switch]:checked[aria-invalid=true] {
- --border-color: var(--form-element-invalid-border-color);
-}
-
-/**
- * Form elements
- * Alternatives input types (Not Checkboxes & Radios)
- */
-[type=color]::-webkit-color-swatch-wrapper {
- padding: 0;
-}
-[type=color]::-moz-focus-inner {
- padding: 0;
-}
-[type=color]::-webkit-color-swatch {
- border: 0;
- border-radius: calc(var(--border-radius) * 0.5);
-}
-[type=color]::-moz-color-swatch {
- border: 0;
- border-radius: calc(var(--border-radius) * 0.5);
-}
-
-input:not([type=checkbox], [type=radio], [type=range], [type=file]):is([type=date], [type=datetime-local], [type=month], [type=time], [type=week]) {
- --icon-position: 0.75rem;
- --icon-width: 1rem;
- padding-right: calc(var(--icon-width) + var(--icon-position));
- background-image: var(--icon-date);
- background-position: center right var(--icon-position);
- background-size: var(--icon-width) auto;
- background-repeat: no-repeat;
-}
-input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=time] {
- background-image: var(--icon-time);
-}
-
-[type=date]::-webkit-calendar-picker-indicator,
-[type=datetime-local]::-webkit-calendar-picker-indicator,
-[type=month]::-webkit-calendar-picker-indicator,
-[type=time]::-webkit-calendar-picker-indicator,
-[type=week]::-webkit-calendar-picker-indicator {
- width: var(--icon-width);
- margin-right: calc(var(--icon-width) * -1);
- margin-left: var(--icon-position);
- opacity: 0;
-}
-
-[dir=rtl] :is([type=date], [type=datetime-local], [type=month], [type=time], [type=week]) {
- text-align: right;
-}
-
-[type=file] {
- --color: var(--muted-color);
- padding: calc(var(--form-element-spacing-vertical) * 0.5) 0;
- border: 0;
- border-radius: 0;
- background: none;
-}
-[type=file]::file-selector-button {
- --background-color: var(--secondary);
- --border-color: var(--secondary);
- --color: var(--secondary-inverse);
- margin-right: calc(var(--spacing) / 2);
- margin-left: 0;
- -webkit-margin-start: 0;
- margin-inline-start: 0;
- -webkit-margin-end: calc(var(--spacing) / 2);
- margin-inline-end: calc(var(--spacing) / 2);
- padding: calc(var(--form-element-spacing-vertical) * 0.5) calc(var(--form-element-spacing-horizontal) * 0.5);
- border: var(--border-width) solid var(--border-color);
- border-radius: var(--border-radius);
- outline: none;
- background-color: var(--background-color);
- box-shadow: var(--box-shadow);
- color: var(--color);
- font-weight: var(--font-weight);
- font-size: 1rem;
- line-height: var(--line-height);
- text-align: center;
- cursor: pointer;
- transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
-}
-[type=file]::file-selector-button:is(:hover, :active, :focus) {
- --background-color: var(--secondary-hover);
- --border-color: var(--secondary-hover);
-}
-[type=file]::-webkit-file-upload-button {
- --background-color: var(--secondary);
- --border-color: var(--secondary);
- --color: var(--secondary-inverse);
- margin-right: calc(var(--spacing) / 2);
- margin-left: 0;
- -webkit-margin-start: 0;
- margin-inline-start: 0;
- -webkit-margin-end: calc(var(--spacing) / 2);
- margin-inline-end: calc(var(--spacing) / 2);
- padding: calc(var(--form-element-spacing-vertical) * 0.5) calc(var(--form-element-spacing-horizontal) * 0.5);
- border: var(--border-width) solid var(--border-color);
- border-radius: var(--border-radius);
- outline: none;
- background-color: var(--background-color);
- box-shadow: var(--box-shadow);
- color: var(--color);
- font-weight: var(--font-weight);
- font-size: 1rem;
- line-height: var(--line-height);
- text-align: center;
- cursor: pointer;
- -webkit-transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
- transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
-}
-[type=file]::-webkit-file-upload-button:is(:hover, :active, :focus) {
- --background-color: var(--secondary-hover);
- --border-color: var(--secondary-hover);
-}
-[type=file]::-ms-browse {
- --background-color: var(--secondary);
- --border-color: var(--secondary);
- --color: var(--secondary-inverse);
- margin-right: calc(var(--spacing) / 2);
- margin-left: 0;
- margin-inline-start: 0;
- margin-inline-end: calc(var(--spacing) / 2);
- padding: calc(var(--form-element-spacing-vertical) * 0.5) calc(var(--form-element-spacing-horizontal) * 0.5);
- border: var(--border-width) solid var(--border-color);
- border-radius: var(--border-radius);
- outline: none;
- background-color: var(--background-color);
- box-shadow: var(--box-shadow);
- color: var(--color);
- font-weight: var(--font-weight);
- font-size: 1rem;
- line-height: var(--line-height);
- text-align: center;
- cursor: pointer;
- -ms-transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
- transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
-}
-[type=file]::-ms-browse:is(:hover, :active, :focus) {
- --background-color: var(--secondary-hover);
- --border-color: var(--secondary-hover);
-}
-
-[type=range] {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- width: 100%;
- height: 1.25rem;
- background: none;
-}
-[type=range]::-webkit-slider-runnable-track {
- width: 100%;
- height: 0.25rem;
- border-radius: var(--border-radius);
- background-color: var(--range-border-color);
- -webkit-transition: background-color var(--transition), box-shadow var(--transition);
- transition: background-color var(--transition), box-shadow var(--transition);
-}
-[type=range]::-moz-range-track {
- width: 100%;
- height: 0.25rem;
- border-radius: var(--border-radius);
- background-color: var(--range-border-color);
- -moz-transition: background-color var(--transition), box-shadow var(--transition);
- transition: background-color var(--transition), box-shadow var(--transition);
-}
-[type=range]::-ms-track {
- width: 100%;
- height: 0.25rem;
- border-radius: var(--border-radius);
- background-color: var(--range-border-color);
- -ms-transition: background-color var(--transition), box-shadow var(--transition);
- transition: background-color var(--transition), box-shadow var(--transition);
-}
-[type=range]::-webkit-slider-thumb {
- -webkit-appearance: none;
- width: 1.25rem;
- height: 1.25rem;
- margin-top: -0.5rem;
- border: 2px solid var(--range-thumb-border-color);
- border-radius: 50%;
- background-color: var(--range-thumb-color);
- cursor: pointer;
- -webkit-transition: background-color var(--transition), transform var(--transition);
- transition: background-color var(--transition), transform var(--transition);
-}
-[type=range]::-moz-range-thumb {
- -webkit-appearance: none;
- width: 1.25rem;
- height: 1.25rem;
- margin-top: -0.5rem;
- border: 2px solid var(--range-thumb-border-color);
- border-radius: 50%;
- background-color: var(--range-thumb-color);
- cursor: pointer;
- -moz-transition: background-color var(--transition), transform var(--transition);
- transition: background-color var(--transition), transform var(--transition);
-}
-[type=range]::-ms-thumb {
- -webkit-appearance: none;
- width: 1.25rem;
- height: 1.25rem;
- margin-top: -0.5rem;
- border: 2px solid var(--range-thumb-border-color);
- border-radius: 50%;
- background-color: var(--range-thumb-color);
- cursor: pointer;
- -ms-transition: background-color var(--transition), transform var(--transition);
- transition: background-color var(--transition), transform var(--transition);
-}
-[type=range]:hover, [type=range]:focus {
- --range-border-color: var(--range-active-border-color);
- --range-thumb-color: var(--range-thumb-hover-color);
-}
-[type=range]:active {
- --range-thumb-color: var(--range-thumb-active-color);
-}
-[type=range]:active::-webkit-slider-thumb {
- transform: scale(1.25);
-}
-[type=range]:active::-moz-range-thumb {
- transform: scale(1.25);
-}
-[type=range]:active::-ms-thumb {
- transform: scale(1.25);
-}
-
-input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] {
- -webkit-padding-start: calc(var(--form-element-spacing-horizontal) + 1.75rem);
- padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem);
- border-radius: 5rem;
- background-image: var(--icon-search);
- background-position: center left 1.125rem;
- background-size: 1rem auto;
- background-repeat: no-repeat;
-}
-input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid] {
- -webkit-padding-start: calc(var(--form-element-spacing-horizontal) + 1.75rem) !important;
- padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem) !important;
- background-position: center left 1.125rem, center right 0.75rem;
-}
-input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid=false] {
- background-image: var(--icon-search), var(--icon-valid);
-}
-input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid=true] {
- background-image: var(--icon-search), var(--icon-invalid);
-}
-
-[type=search]::-webkit-search-cancel-button {
- -webkit-appearance: none;
- display: none;
-}
-
-[dir=rtl] :where(input):not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] {
- background-position: center right 1.125rem;
-}
-[dir=rtl] :where(input):not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid] {
- background-position: center right 1.125rem, center left 0.75rem;
-}
-
-/**
- * Table
- */
-:where(table) {
- width: 100%;
- border-collapse: collapse;
- border-spacing: 0;
- text-indent: 0;
-}
-
-th,
-td {
- padding: calc(var(--spacing) / 2) var(--spacing);
- border-bottom: var(--border-width) solid var(--table-border-color);
- color: var(--color);
- font-weight: var(--font-weight);
- font-size: var(--font-size);
- text-align: left;
- text-align: start;
-}
-
-tfoot th,
-tfoot td {
- border-top: var(--border-width) solid var(--table-border-color);
- border-bottom: 0;
-}
-
-table[role=grid] tbody tr:nth-child(odd) {
- background-color: var(--table-row-stripped-background-color);
-}
-
-/**
- * Code
- */
-pre,
-code,
-kbd,
-samp {
- font-size: 0.875em;
- font-family: var(--font-family);
-}
-
-pre {
- -ms-overflow-style: scrollbar;
- overflow: auto;
-}
-
-pre,
-code,
-kbd {
- border-radius: var(--border-radius);
- background: var(--code-background-color);
- color: var(--code-color);
- font-weight: var(--font-weight);
- line-height: initial;
-}
-
-code,
-kbd {
- display: inline-block;
- padding: 0.375rem 0.5rem;
-}
-
-pre {
- display: block;
- margin-bottom: var(--spacing);
- overflow-x: auto;
-}
-pre > code {
- display: block;
- padding: var(--spacing);
- background: none;
- font-size: 14px;
- line-height: var(--line-height);
-}
-
-code b {
- color: var(--code-tag-color);
- font-weight: var(--font-weight);
-}
-code i {
- color: var(--code-property-color);
- font-style: normal;
-}
-code u {
- color: var(--code-value-color);
- text-decoration: none;
-}
-code em {
- color: var(--code-comment-color);
- font-style: normal;
-}
-
-kbd {
- background-color: var(--code-kbd-background-color);
- color: var(--code-kbd-color);
- vertical-align: baseline;
-}
-
-/**
- * Miscs
- */
-hr {
- height: 0;
- border: 0;
- border-top: 1px solid var(--muted-border-color);
- color: inherit;
-}
-
-[hidden],
-template {
- display: none !important;
-}
-
-canvas {
- display: inline-block;
-}
-
-/**
- * Accordion ()
- */
-details {
- display: block;
- margin-bottom: var(--spacing);
- padding-bottom: var(--spacing);
- border-bottom: var(--border-width) solid var(--accordion-border-color);
-}
-details summary {
- line-height: 1rem;
- list-style-type: none;
- cursor: pointer;
- transition: color var(--transition);
-}
-details summary:not([role]) {
- color: var(--accordion-close-summary-color);
-}
-details summary::-webkit-details-marker {
- display: none;
-}
-details summary::marker {
- display: none;
-}
-details summary::-moz-list-bullet {
- list-style-type: none;
-}
-details summary::after {
- display: block;
- width: 1rem;
- height: 1rem;
- -webkit-margin-start: calc(var(--spacing, 1rem) * 0.5);
- margin-inline-start: calc(var(--spacing, 1rem) * 0.5);
- float: right;
- transform: rotate(-90deg);
- background-image: var(--icon-chevron);
- background-position: right center;
- background-size: 1rem auto;
- background-repeat: no-repeat;
- content: "";
- transition: transform var(--transition);
-}
-details summary:focus {
- outline: none;
-}
-details summary:focus:not([role=button]) {
- color: var(--accordion-active-summary-color);
-}
-details summary[role=button] {
- width: 100%;
- text-align: left;
-}
-details summary[role=button]::after {
- height: calc(1rem * var(--line-height, 1.5));
- background-image: var(--icon-chevron-button);
-}
-details summary[role=button]:not(.outline).contrast::after {
- background-image: var(--icon-chevron-button-inverse);
-}
-details[open] > summary {
- margin-bottom: calc(var(--spacing));
-}
-details[open] > summary:not([role]):not(:focus) {
- color: var(--accordion-open-summary-color);
-}
-details[open] > summary::after {
- transform: rotate(0);
-}
-
-[dir=rtl] details summary {
- text-align: right;
-}
-[dir=rtl] details summary::after {
- float: left;
- background-position: left center;
-}
-
-/**
- * Card ()
- */
-article {
- margin: var(--block-spacing-vertical) 0;
- padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);
- border-radius: var(--border-radius);
- background: var(--card-background-color);
- box-shadow: var(--card-box-shadow);
-}
-article > header,
-article > footer {
- margin-right: calc(var(--block-spacing-horizontal) * -1);
- margin-left: calc(var(--block-spacing-horizontal) * -1);
- padding: calc(var(--block-spacing-vertical) * 0.66) var(--block-spacing-horizontal);
- background-color: var(--card-sectionning-background-color);
-}
-article > header {
- margin-top: calc(var(--block-spacing-vertical) * -1);
- margin-bottom: var(--block-spacing-vertical);
- border-bottom: var(--border-width) solid var(--card-border-color);
- border-top-right-radius: var(--border-radius);
- border-top-left-radius: var(--border-radius);
-}
-article > footer {
- margin-top: var(--block-spacing-vertical);
- margin-bottom: calc(var(--block-spacing-vertical) * -1);
- border-top: var(--border-width) solid var(--card-border-color);
- border-bottom-right-radius: var(--border-radius);
- border-bottom-left-radius: var(--border-radius);
-}
-
-/**
- * Modal ()
- */
-:root {
- --scrollbar-width: 0px;
-}
-
-dialog {
- display: flex;
- z-index: 999;
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- align-items: center;
- justify-content: center;
- width: inherit;
- min-width: 100%;
- height: inherit;
- min-height: 100%;
- padding: var(--spacing);
- border: 0;
- -webkit-backdrop-filter: var(--modal-overlay-backdrop-filter);
- backdrop-filter: var(--modal-overlay-backdrop-filter);
- background-color: var(--modal-overlay-background-color);
- color: var(--color);
-}
-dialog article {
- max-height: calc(100vh - var(--spacing) * 2);
- overflow: auto;
-}
-@media (min-width: 576px) {
- dialog article {
- max-width: 510px;
- }
-}
-@media (min-width: 768px) {
- dialog article {
- max-width: 700px;
- }
-}
-dialog article > header,
-dialog article > footer {
- padding: calc(var(--block-spacing-vertical) * 0.5) var(--block-spacing-horizontal);
-}
-dialog article > header .close {
- margin: 0;
- margin-left: var(--spacing);
- float: right;
-}
-dialog article > footer {
- text-align: right;
-}
-dialog article > footer [role=button] {
- margin-bottom: 0;
-}
-dialog article > footer [role=button]:not(:first-of-type) {
- margin-left: calc(var(--spacing) * 0.5);
-}
-dialog article p:last-of-type {
- margin: 0;
-}
-dialog article .close {
- display: block;
- width: 1rem;
- height: 1rem;
- margin-top: calc(var(--block-spacing-vertical) * -0.5);
- margin-bottom: var(--typography-spacing-vertical);
- margin-left: auto;
- background-image: var(--icon-close);
- background-position: center;
- background-size: auto 1rem;
- background-repeat: no-repeat;
- opacity: 0.5;
- transition: opacity var(--transition);
-}
-dialog article .close:is([aria-current], :hover, :active, :focus) {
- opacity: 1;
-}
-dialog:not([open]), dialog[open=false] {
- display: none;
-}
-
-.modal-is-open {
- padding-right: var(--scrollbar-width, 0px);
- overflow: hidden;
- pointer-events: none;
- touch-action: none;
-}
-.modal-is-open dialog {
- pointer-events: auto;
-}
-
-:where(.modal-is-opening, .modal-is-closing) dialog,
-:where(.modal-is-opening, .modal-is-closing) dialog > article {
- animation-duration: 0.2s;
- animation-timing-function: ease-in-out;
- animation-fill-mode: both;
-}
-:where(.modal-is-opening, .modal-is-closing) dialog {
- animation-duration: 0.8s;
- animation-name: modal-overlay;
-}
-:where(.modal-is-opening, .modal-is-closing) dialog > article {
- animation-delay: 0.2s;
- animation-name: modal;
-}
-
-.modal-is-closing dialog,
-.modal-is-closing dialog > article {
- animation-delay: 0s;
- animation-direction: reverse;
-}
-
-@keyframes modal-overlay {
- from {
- -webkit-backdrop-filter: none;
- backdrop-filter: none;
- background-color: transparent;
- }
-}
-@keyframes modal {
- from {
- transform: translateY(-100%);
- opacity: 0;
- }
-}
-/**
- * Nav
- */
-:where(nav li)::before {
- float: left;
- content: "";
-}
-
-nav,
-nav ul {
- display: flex;
-}
-
-nav {
- justify-content: space-between;
-}
-nav ol,
-nav ul {
- align-items: center;
- margin-bottom: 0;
- padding: 0;
- list-style: none;
-}
-nav ol:first-of-type,
-nav ul:first-of-type {
- margin-left: calc(var(--nav-element-spacing-horizontal) * -1);
-}
-nav ol:last-of-type,
-nav ul:last-of-type {
- margin-right: calc(var(--nav-element-spacing-horizontal) * -1);
-}
-nav li {
- display: inline-block;
- margin: 0;
- padding: var(--nav-element-spacing-vertical) var(--nav-element-spacing-horizontal);
-}
-nav li > * {
- --spacing: 0;
-}
-nav :where(a, [role=link]) {
- display: inline-block;
- margin: calc(var(--nav-link-spacing-vertical) * -1) calc(var(--nav-link-spacing-horizontal) * -1);
- padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);
- border-radius: var(--border-radius);
- text-decoration: none;
-}
-nav :where(a, [role=link]):is([aria-current], :hover, :active, :focus) {
- text-decoration: none;
-}
-nav[aria-label=breadcrumb] {
- align-items: center;
- justify-content: start;
-}
-nav[aria-label=breadcrumb] ul li:not(:first-child) {
- -webkit-margin-start: var(--nav-link-spacing-horizontal);
- margin-inline-start: var(--nav-link-spacing-horizontal);
-}
-nav[aria-label=breadcrumb] ul li:not(:last-child) ::after {
- position: absolute;
- width: calc(var(--nav-link-spacing-horizontal) * 2);
- -webkit-margin-start: calc(var(--nav-link-spacing-horizontal) / 2);
- margin-inline-start: calc(var(--nav-link-spacing-horizontal) / 2);
- content: "/";
- color: var(--muted-color);
- text-align: center;
-}
-nav[aria-label=breadcrumb] a[aria-current] {
- background-color: transparent;
- color: inherit;
- text-decoration: none;
- pointer-events: none;
-}
-nav [role=button] {
- margin-right: inherit;
- margin-left: inherit;
- padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);
-}
-
-aside nav,
-aside ol,
-aside ul,
-aside li {
- display: block;
-}
-aside li {
- padding: calc(var(--nav-element-spacing-vertical) * 0.5) var(--nav-element-spacing-horizontal);
-}
-aside li a {
- display: block;
-}
-aside li [role=button] {
- margin: inherit;
-}
-
-[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) ::after {
- content: "\\";
-}
-
-/**
- * Progress
- */
-progress {
- display: inline-block;
- vertical-align: baseline;
-}
-
-progress {
- -webkit-appearance: none;
- -moz-appearance: none;
- display: inline-block;
- appearance: none;
- width: 100%;
- height: 0.5rem;
- margin-bottom: calc(var(--spacing) * 0.5);
- overflow: hidden;
- border: 0;
- border-radius: var(--border-radius);
- background-color: var(--progress-background-color);
- color: var(--progress-color);
-}
-progress::-webkit-progress-bar {
- border-radius: var(--border-radius);
- background: none;
-}
-progress[value]::-webkit-progress-value {
- background-color: var(--progress-color);
-}
-progress::-moz-progress-bar {
- background-color: var(--progress-color);
-}
-@media (prefers-reduced-motion: no-preference) {
- progress:indeterminate {
- background: var(--progress-background-color) linear-gradient(to right, var(--progress-color) 30%, var(--progress-background-color) 30%) top left/150% 150% no-repeat;
- animation: progress-indeterminate 1s linear infinite;
- }
- progress:indeterminate[value]::-webkit-progress-value {
- background-color: transparent;
- }
- progress:indeterminate::-moz-progress-bar {
- background-color: transparent;
- }
-}
-
-@media (prefers-reduced-motion: no-preference) {
- [dir=rtl] progress:indeterminate {
- animation-direction: reverse;
- }
-}
-
-@keyframes progress-indeterminate {
- 0% {
- background-position: 200% 0;
- }
- 100% {
- background-position: -200% 0;
- }
-}
-/**
- * Dropdown ([role="list"])
- */
-details[role=list],
-li[role=list] {
- position: relative;
-}
-
-details[role=list] summary + ul,
-li[role=list] > ul {
- display: flex;
- z-index: 99;
- position: absolute;
- top: auto;
- right: 0;
- left: 0;
- flex-direction: column;
- margin: 0;
- padding: 0;
- border: var(--border-width) solid var(--dropdown-border-color);
- border-radius: var(--border-radius);
- border-top-right-radius: 0;
- border-top-left-radius: 0;
- background-color: var(--dropdown-background-color);
- box-shadow: var(--card-box-shadow);
- color: var(--dropdown-color);
- white-space: nowrap;
-}
-details[role=list] summary + ul li,
-li[role=list] > ul li {
- width: 100%;
- margin-bottom: 0;
- padding: calc(var(--form-element-spacing-vertical) * 0.5) var(--form-element-spacing-horizontal);
- list-style: none;
-}
-details[role=list] summary + ul li:first-of-type,
-li[role=list] > ul li:first-of-type {
- margin-top: calc(var(--form-element-spacing-vertical) * 0.5);
-}
-details[role=list] summary + ul li:last-of-type,
-li[role=list] > ul li:last-of-type {
- margin-bottom: calc(var(--form-element-spacing-vertical) * 0.5);
-}
-details[role=list] summary + ul li a,
-li[role=list] > ul li a {
- display: block;
- margin: calc(var(--form-element-spacing-vertical) * -0.5) calc(var(--form-element-spacing-horizontal) * -1);
- padding: calc(var(--form-element-spacing-vertical) * 0.5) var(--form-element-spacing-horizontal);
- overflow: hidden;
- color: var(--dropdown-color);
- text-decoration: none;
- text-overflow: ellipsis;
-}
-details[role=list] summary + ul li a:hover,
-li[role=list] > ul li a:hover {
- background-color: var(--dropdown-hover-background-color);
-}
-
-details[role=list] summary::after,
-li[role=list] > a::after {
- display: block;
- width: 1rem;
- height: calc(1rem * var(--line-height, 1.5));
- -webkit-margin-start: 0.5rem;
- margin-inline-start: 0.5rem;
- float: right;
- transform: rotate(0deg);
- background-position: right center;
- background-size: 1rem auto;
- background-repeat: no-repeat;
- content: "";
-}
-
-details[role=list] {
- padding: 0;
- border-bottom: none;
-}
-details[role=list] summary {
- margin-bottom: 0;
-}
-details[role=list] summary:not([role]) {
- height: calc(1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 + var(--border-width) * 2);
- padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
- border: var(--border-width) solid var(--form-element-border-color);
- border-radius: var(--border-radius);
- background-color: var(--form-element-background-color);
- color: var(--form-element-placeholder-color);
- line-height: inherit;
- cursor: pointer;
- transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
-}
-details[role=list] summary:not([role]):active, details[role=list] summary:not([role]):focus {
- border-color: var(--form-element-active-border-color);
- background-color: var(--form-element-active-background-color);
-}
-details[role=list] summary:not([role]):focus {
- box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color);
-}
-details[role=list][open] summary {
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-details[role=list][open] summary::before {
- display: block;
- z-index: 1;
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: none;
- content: "";
- cursor: default;
-}
-
-nav details[role=list] summary,
-nav li[role=list] a {
- display: flex;
- direction: ltr;
-}
-
-nav details[role=list] summary + ul,
-nav li[role=list] > ul {
- min-width: -moz-fit-content;
- min-width: fit-content;
- border-radius: var(--border-radius);
-}
-nav details[role=list] summary + ul li a,
-nav li[role=list] > ul li a {
- border-radius: 0;
-}
-
-nav details[role=list] summary,
-nav details[role=list] summary:not([role]) {
- height: auto;
- padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);
-}
-nav details[role=list][open] summary {
- border-radius: var(--border-radius);
-}
-nav details[role=list] summary + ul {
- margin-top: var(--outline-width);
- -webkit-margin-start: 0;
- margin-inline-start: 0;
-}
-nav details[role=list] summary[role=link] {
- margin-bottom: calc(var(--nav-link-spacing-vertical) * -1);
- line-height: var(--line-height);
-}
-nav details[role=list] summary[role=link] + ul {
- margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));
- -webkit-margin-start: calc(var(--nav-link-spacing-horizontal) * -1);
- margin-inline-start: calc(var(--nav-link-spacing-horizontal) * -1);
-}
-
-li[role=list]:hover > ul,
-li[role=list] a:active ~ ul,
-li[role=list] a:focus ~ ul {
- display: flex;
-}
-li[role=list] > ul {
- display: none;
- margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));
- -webkit-margin-start: calc(var(--nav-element-spacing-horizontal) - var(--nav-link-spacing-horizontal));
- margin-inline-start: calc(var(--nav-element-spacing-horizontal) - var(--nav-link-spacing-horizontal));
-}
-li[role=list] > a::after {
- background-image: var(--icon-chevron);
-}
-
-label > details[role=list] {
- margin-top: calc(var(--spacing) * 0.25);
- margin-bottom: var(--spacing);
-}
-
-/**
- * Loading ([aria-busy=true])
- */
-[aria-busy=true] {
- cursor: progress;
-}
-
-[aria-busy=true]:not(input, select, textarea)::before {
- display: inline-block;
- width: 1em;
- height: 1em;
- border: 0.1875em solid currentColor;
- border-radius: 1em;
- border-right-color: transparent;
- content: "";
- vertical-align: text-bottom;
- vertical-align: -0.125em;
- animation: spinner 0.75s linear infinite;
- opacity: var(--loading-spinner-opacity);
-}
-[aria-busy=true]:not(input, select, textarea):not(:empty)::before {
- margin-right: calc(var(--spacing) * 0.5);
- margin-left: 0;
- -webkit-margin-start: 0;
- margin-inline-start: 0;
- -webkit-margin-end: calc(var(--spacing) * 0.5);
- margin-inline-end: calc(var(--spacing) * 0.5);
-}
-[aria-busy=true]:not(input, select, textarea):empty {
- text-align: center;
-}
-
-button[aria-busy=true],
-input[type=submit][aria-busy=true],
-input[type=button][aria-busy=true],
-input[type=reset][aria-busy=true],
-a[aria-busy=true] {
- pointer-events: none;
-}
-
-@keyframes spinner {
- to {
- transform: rotate(360deg);
- }
-}
-/**
- * Tooltip ([data-tooltip])
- */
-[data-tooltip] {
- position: relative;
-}
-[data-tooltip]:not(a, button, input) {
- border-bottom: 1px dotted;
- text-decoration: none;
- cursor: help;
-}
-[data-tooltip][data-placement=top]::before, [data-tooltip][data-placement=top]::after, [data-tooltip]::before, [data-tooltip]::after {
- display: block;
- z-index: 99;
- position: absolute;
- bottom: 100%;
- left: 50%;
- padding: 0.25rem 0.5rem;
- overflow: hidden;
- transform: translate(-50%, -0.25rem);
- border-radius: var(--border-radius);
- background: var(--tooltip-background-color);
- content: attr(data-tooltip);
- color: var(--tooltip-color);
- font-style: normal;
- font-weight: var(--font-weight);
- font-size: 0.875rem;
- text-decoration: none;
- text-overflow: ellipsis;
- white-space: nowrap;
- opacity: 0;
- pointer-events: none;
-}
-[data-tooltip][data-placement=top]::after, [data-tooltip]::after {
- padding: 0;
- transform: translate(-50%, 0rem);
- border-top: 0.3rem solid;
- border-right: 0.3rem solid transparent;
- border-left: 0.3rem solid transparent;
- border-radius: 0;
- background-color: transparent;
- content: "";
- color: var(--tooltip-background-color);
-}
-[data-tooltip][data-placement=bottom]::before, [data-tooltip][data-placement=bottom]::after {
- top: 100%;
- bottom: auto;
- transform: translate(-50%, 0.25rem);
-}
-[data-tooltip][data-placement=bottom]:after {
- transform: translate(-50%, -0.3rem);
- border: 0.3rem solid transparent;
- border-bottom: 0.3rem solid;
-}
-[data-tooltip][data-placement=left]::before, [data-tooltip][data-placement=left]::after {
- top: 50%;
- right: 100%;
- bottom: auto;
- left: auto;
- transform: translate(-0.25rem, -50%);
-}
-[data-tooltip][data-placement=left]:after {
- transform: translate(0.3rem, -50%);
- border: 0.3rem solid transparent;
- border-left: 0.3rem solid;
-}
-[data-tooltip][data-placement=right]::before, [data-tooltip][data-placement=right]::after {
- top: 50%;
- right: auto;
- bottom: auto;
- left: 100%;
- transform: translate(0.25rem, -50%);
-}
-[data-tooltip][data-placement=right]:after {
- transform: translate(-0.3rem, -50%);
- border: 0.3rem solid transparent;
- border-right: 0.3rem solid;
-}
-[data-tooltip]:focus::before, [data-tooltip]:focus::after, [data-tooltip]:hover::before, [data-tooltip]:hover::after {
- opacity: 1;
-}
-@media (hover: hover) and (pointer: fine) {
- [data-tooltip][data-placement=bottom]:focus::before, [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover [data-tooltip]:focus::before, [data-tooltip][data-placement=bottom]:hover [data-tooltip]:focus::after, [data-tooltip]:hover::before, [data-tooltip]:hover::after {
- animation-duration: 0.2s;
- animation-name: tooltip-slide-top;
- }
- [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover [data-tooltip]:focus::after, [data-tooltip]:hover::after {
- animation-name: tooltip-caret-slide-top;
- }
- [data-tooltip][data-placement=bottom]:focus::before, [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover::before, [data-tooltip][data-placement=bottom]:hover::after {
- animation-duration: 0.2s;
- animation-name: tooltip-slide-bottom;
- }
- [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover::after {
- animation-name: tooltip-caret-slide-bottom;
- }
- [data-tooltip][data-placement=left]:focus::before, [data-tooltip][data-placement=left]:focus::after, [data-tooltip][data-placement=left]:hover::before, [data-tooltip][data-placement=left]:hover::after {
- animation-duration: 0.2s;
- animation-name: tooltip-slide-left;
- }
- [data-tooltip][data-placement=left]:focus::after, [data-tooltip][data-placement=left]:hover::after {
- animation-name: tooltip-caret-slide-left;
- }
- [data-tooltip][data-placement=right]:focus::before, [data-tooltip][data-placement=right]:focus::after, [data-tooltip][data-placement=right]:hover::before, [data-tooltip][data-placement=right]:hover::after {
- animation-duration: 0.2s;
- animation-name: tooltip-slide-right;
- }
- [data-tooltip][data-placement=right]:focus::after, [data-tooltip][data-placement=right]:hover::after {
- animation-name: tooltip-caret-slide-right;
- }
-}
-@keyframes tooltip-slide-top {
- from {
- transform: translate(-50%, 0.75rem);
- opacity: 0;
- }
- to {
- transform: translate(-50%, -0.25rem);
- opacity: 1;
- }
-}
-@keyframes tooltip-caret-slide-top {
- from {
- opacity: 0;
- }
- 50% {
- transform: translate(-50%, -0.25rem);
- opacity: 0;
- }
- to {
- transform: translate(-50%, 0rem);
- opacity: 1;
- }
-}
-@keyframes tooltip-slide-bottom {
- from {
- transform: translate(-50%, -0.75rem);
- opacity: 0;
- }
- to {
- transform: translate(-50%, 0.25rem);
- opacity: 1;
- }
-}
-@keyframes tooltip-caret-slide-bottom {
- from {
- opacity: 0;
- }
- 50% {
- transform: translate(-50%, -0.5rem);
- opacity: 0;
- }
- to {
- transform: translate(-50%, -0.3rem);
- opacity: 1;
- }
-}
-@keyframes tooltip-slide-left {
- from {
- transform: translate(0.75rem, -50%);
- opacity: 0;
- }
- to {
- transform: translate(-0.25rem, -50%);
- opacity: 1;
- }
-}
-@keyframes tooltip-caret-slide-left {
- from {
- opacity: 0;
- }
- 50% {
- transform: translate(0.05rem, -50%);
- opacity: 0;
- }
- to {
- transform: translate(0.3rem, -50%);
- opacity: 1;
- }
-}
-@keyframes tooltip-slide-right {
- from {
- transform: translate(-0.75rem, -50%);
- opacity: 0;
- }
- to {
- transform: translate(0.25rem, -50%);
- opacity: 1;
- }
-}
-@keyframes tooltip-caret-slide-right {
- from {
- opacity: 0;
- }
- 50% {
- transform: translate(-0.05rem, -50%);
- opacity: 0;
- }
- to {
- transform: translate(-0.3rem, -50%);
- opacity: 1;
- }
-}
-
-/**
- * Accessibility & User interaction
- */
-[aria-controls] {
- cursor: pointer;
-}
-
-[aria-disabled=true],
-[disabled] {
- cursor: not-allowed;
-}
-
-[aria-hidden=false][hidden] {
- display: initial;
-}
-
-[aria-hidden=false][hidden]:not(:focus) {
- clip: rect(0, 0, 0, 0);
- position: absolute;
-}
-
-a,
-area,
-button,
-input,
-label,
-select,
-summary,
-textarea,
-[tabindex] {
- -ms-touch-action: manipulation;
-}
-
-[dir=rtl] {
- direction: rtl;
-}
-
-/**
-* Reduce Motion Features
-*/
-@media (prefers-reduced-motion: reduce) {
- *:not([aria-busy=true]),
- :not([aria-busy=true])::before,
- :not([aria-busy=true])::after {
- background-attachment: initial !important;
- animation-duration: 1ms !important;
- animation-delay: -1ms !important;
- animation-iteration-count: 1 !important;
- scroll-behavior: auto !important;
- transition-delay: 0s !important;
- transition-duration: 0s !important;
- }
-}
-
-/*# sourceMappingURL=pico.css.map */
\ No newline at end of file
diff --git a/bin/pico.css.map b/bin/pico.css.map
deleted file mode 100644
index 2bf34b3..0000000
--- a/bin/pico.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["pico.css","../scss/pico.scss","../scss/themes/default.scss","../scss/themes/default/_styles.scss","../scss/themes/default/_light.scss","../scss/themes/default/_dark.scss","../scss/layout/_document.scss","../scss/layout/_sectioning.scss","../scss/layout/_container.scss","../scss/layout/_section.scss","../scss/layout/_grid.scss","../scss/layout/_scroller.scss","../scss/content/_typography.scss","../scss/content/_embedded.scss","../scss/content/_button.scss","../scss/content/_form.scss","../scss/content/_form-checkbox-radio.scss","../scss/content/_form-alt-input-types.scss","../scss/content/_table.scss","../scss/content/_code.scss","../scss/content/_miscs.scss","../scss/components/_accordion.scss","../scss/components/_card.scss","../scss/components/_modal.scss","../scss/components/_nav.scss","../scss/components/_progress.scss","../scss/components/_dropdown.scss","../scss/utilities/_loading.scss","../scss/utilities/_tooltip.scss","../scss/utilities/_accessibility.scss","../scss/utilities/_reduce-motion.scss"],"names":[],"mappings":"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","file":"pico.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * Pico CSS v1.5.9 (https://picocss.com)\n * Copyright 2019-2023 - Licensed under MIT\n */\n/**\n * Theme: default\n */\n:root {\n --font-family: system-ui, -apple-system, \"Segoe UI\", \"Roboto\", \"Ubuntu\",\n \"Cantarell\", \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --line-height: 1.5;\n --font-weight: 400;\n --font-size: 16px;\n --border-radius: 0.25rem;\n --border-width: 1px;\n --outline-width: 3px;\n --spacing: 1rem;\n --typography-spacing-vertical: 1.5rem;\n --block-spacing-vertical: calc(var(--spacing) * 2);\n --block-spacing-horizontal: var(--spacing);\n --grid-spacing-vertical: 0;\n --grid-spacing-horizontal: var(--spacing);\n --form-element-spacing-vertical: 0.75rem;\n --form-element-spacing-horizontal: 1rem;\n --nav-element-spacing-vertical: 1rem;\n --nav-element-spacing-horizontal: 0.5rem;\n --nav-link-spacing-vertical: 0.5rem;\n --nav-link-spacing-horizontal: 0.5rem;\n --form-label-font-weight: var(--font-weight);\n --transition: 0.2s ease-in-out;\n --modal-overlay-backdrop-filter: blur(0.25rem);\n}\n@media (min-width: 576px) {\n :root {\n --font-size: 17px;\n }\n}\n@media (min-width: 768px) {\n :root {\n --font-size: 18px;\n }\n}\n@media (min-width: 992px) {\n :root {\n --font-size: 19px;\n }\n}\n@media (min-width: 1200px) {\n :root {\n --font-size: 20px;\n }\n}\n\n@media (min-width: 576px) {\n body > header,\n body > main,\n body > footer,\n section {\n --block-spacing-vertical: calc(var(--spacing) * 2.5);\n }\n}\n@media (min-width: 768px) {\n body > header,\n body > main,\n body > footer,\n section {\n --block-spacing-vertical: calc(var(--spacing) * 3);\n }\n}\n@media (min-width: 992px) {\n body > header,\n body > main,\n body > footer,\n section {\n --block-spacing-vertical: calc(var(--spacing) * 3.5);\n }\n}\n@media (min-width: 1200px) {\n body > header,\n body > main,\n body > footer,\n section {\n --block-spacing-vertical: calc(var(--spacing) * 4);\n }\n}\n\n@media (min-width: 576px) {\n article {\n --block-spacing-horizontal: calc(var(--spacing) * 1.25);\n }\n}\n@media (min-width: 768px) {\n article {\n --block-spacing-horizontal: calc(var(--spacing) * 1.5);\n }\n}\n@media (min-width: 992px) {\n article {\n --block-spacing-horizontal: calc(var(--spacing) * 1.75);\n }\n}\n@media (min-width: 1200px) {\n article {\n --block-spacing-horizontal: calc(var(--spacing) * 2);\n }\n}\n\ndialog > article {\n --block-spacing-vertical: calc(var(--spacing) * 2);\n --block-spacing-horizontal: var(--spacing);\n}\n@media (min-width: 576px) {\n dialog > article {\n --block-spacing-vertical: calc(var(--spacing) * 2.5);\n --block-spacing-horizontal: calc(var(--spacing) * 1.25);\n }\n}\n@media (min-width: 768px) {\n dialog > article {\n --block-spacing-vertical: calc(var(--spacing) * 3);\n --block-spacing-horizontal: calc(var(--spacing) * 1.5);\n }\n}\n\na {\n --text-decoration: none;\n}\na.secondary, a.contrast {\n --text-decoration: underline;\n}\n\nsmall {\n --font-size: 0.875em;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n --font-weight: 700;\n}\n\nh1 {\n --font-size: 2rem;\n --typography-spacing-vertical: 3rem;\n}\n\nh2 {\n --font-size: 1.75rem;\n --typography-spacing-vertical: 2.625rem;\n}\n\nh3 {\n --font-size: 1.5rem;\n --typography-spacing-vertical: 2.25rem;\n}\n\nh4 {\n --font-size: 1.25rem;\n --typography-spacing-vertical: 1.874rem;\n}\n\nh5 {\n --font-size: 1.125rem;\n --typography-spacing-vertical: 1.6875rem;\n}\n\n[type=checkbox],\n[type=radio] {\n --border-width: 2px;\n}\n\n[type=checkbox][role=switch] {\n --border-width: 3px;\n}\n\nthead th,\nthead td,\ntfoot th,\ntfoot td {\n --border-width: 3px;\n}\n\n:not(thead, tfoot) > * > td {\n --font-size: 0.875em;\n}\n\npre,\ncode,\nkbd,\nsamp {\n --font-family: \"Menlo\", \"Consolas\", \"Roboto Mono\", \"Ubuntu Monospace\",\n \"Noto Mono\", \"Oxygen Mono\", \"Liberation Mono\", monospace,\n \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n}\n\nkbd {\n --font-weight: bolder;\n}\n\n[data-theme=light],\n:root:not([data-theme=dark]) {\n --background-color: #fff;\n --color: hsl(205, 20%, 32%);\n --h1-color: hsl(205, 30%, 15%);\n --h2-color: #24333e;\n --h3-color: hsl(205, 25%, 23%);\n --h4-color: #374956;\n --h5-color: hsl(205, 20%, 32%);\n --h6-color: #4d606d;\n --muted-color: hsl(205, 10%, 50%);\n --muted-border-color: hsl(205, 20%, 94%);\n --primary: hsl(195, 85%, 41%);\n --primary-hover: hsl(195, 90%, 32%);\n --primary-focus: rgba(16, 149, 193, 0.125);\n --primary-inverse: #fff;\n --secondary: hsl(205, 15%, 41%);\n --secondary-hover: hsl(205, 20%, 32%);\n --secondary-focus: rgba(89, 107, 120, 0.125);\n --secondary-inverse: #fff;\n --contrast: hsl(205, 30%, 15%);\n --contrast-hover: #000;\n --contrast-focus: rgba(89, 107, 120, 0.125);\n --contrast-inverse: #fff;\n --mark-background-color: #fff2ca;\n --mark-color: #543a26;\n --ins-color: #388e3c;\n --del-color: #c62828;\n --blockquote-border-color: var(--muted-border-color);\n --blockquote-footer-color: var(--muted-color);\n --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);\n --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);\n --form-element-background-color: transparent;\n --form-element-border-color: hsl(205, 14%, 68%);\n --form-element-color: var(--color);\n --form-element-placeholder-color: var(--muted-color);\n --form-element-active-background-color: transparent;\n --form-element-active-border-color: var(--primary);\n --form-element-focus-color: var(--primary-focus);\n --form-element-disabled-background-color: hsl(205, 18%, 86%);\n --form-element-disabled-border-color: hsl(205, 14%, 68%);\n --form-element-disabled-opacity: 0.5;\n --form-element-invalid-border-color: #c62828;\n --form-element-invalid-active-border-color: #d32f2f;\n --form-element-invalid-focus-color: rgba(211, 47, 47, 0.125);\n --form-element-valid-border-color: #388e3c;\n --form-element-valid-active-border-color: #43a047;\n --form-element-valid-focus-color: rgba(67, 160, 71, 0.125);\n --switch-background-color: hsl(205, 16%, 77%);\n --switch-color: var(--primary-inverse);\n --switch-checked-background-color: var(--primary);\n --range-border-color: hsl(205, 18%, 86%);\n --range-active-border-color: hsl(205, 16%, 77%);\n --range-thumb-border-color: var(--background-color);\n --range-thumb-color: var(--secondary);\n --range-thumb-hover-color: var(--secondary-hover);\n --range-thumb-active-color: var(--primary);\n --table-border-color: var(--muted-border-color);\n --table-row-stripped-background-color: #f6f8f9;\n --code-background-color: hsl(205, 20%, 94%);\n --code-color: var(--muted-color);\n --code-kbd-background-color: var(--contrast);\n --code-kbd-color: var(--contrast-inverse);\n --code-tag-color: hsl(330, 40%, 50%);\n --code-property-color: hsl(185, 40%, 40%);\n --code-value-color: hsl(40, 20%, 50%);\n --code-comment-color: hsl(205, 14%, 68%);\n --accordion-border-color: var(--muted-border-color);\n --accordion-close-summary-color: var(--color);\n --accordion-open-summary-color: var(--muted-color);\n --card-background-color: var(--background-color);\n --card-border-color: var(--muted-border-color);\n --card-box-shadow:\n 0.0145rem 0.029rem 0.174rem rgba(27, 40, 50, 0.01698),\n 0.0335rem 0.067rem 0.402rem rgba(27, 40, 50, 0.024),\n 0.0625rem 0.125rem 0.75rem rgba(27, 40, 50, 0.03),\n 0.1125rem 0.225rem 1.35rem rgba(27, 40, 50, 0.036),\n 0.2085rem 0.417rem 2.502rem rgba(27, 40, 50, 0.04302),\n 0.5rem 1rem 6rem rgba(27, 40, 50, 0.06),\n 0 0 0 0.0625rem rgba(27, 40, 50, 0.015);\n --card-sectionning-background-color: #fbfbfc;\n --dropdown-background-color: #fbfbfc;\n --dropdown-border-color: #e1e6eb;\n --dropdown-box-shadow: var(--card-box-shadow);\n --dropdown-color: var(--color);\n --dropdown-hover-background-color: hsl(205, 20%, 94%);\n --modal-overlay-background-color: rgba(213, 220, 226, 0.7);\n --progress-background-color: hsl(205, 18%, 86%);\n --progress-color: var(--primary);\n --loading-spinner-opacity: 0.5;\n --tooltip-background-color: var(--contrast);\n --tooltip-color: var(--contrast-inverse);\n --icon-checkbox: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron-button: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron-button-inverse: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-close: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E\");\n --icon-date: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E\");\n --icon-invalid: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(198, 40, 40)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E\");\n --icon-minus: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E\");\n --icon-search: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E\");\n --icon-time: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-valid: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(56, 142, 60)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E\");\n color-scheme: light;\n}\n\n@media only screen and (prefers-color-scheme: dark) {\n :root:not([data-theme]) {\n --background-color: #11191f;\n --color: hsl(205, 16%, 77%);\n --h1-color: hsl(205, 20%, 94%);\n --h2-color: #e1e6eb;\n --h3-color: hsl(205, 18%, 86%);\n --h4-color: #c8d1d8;\n --h5-color: hsl(205, 16%, 77%);\n --h6-color: #afbbc4;\n --muted-color: hsl(205, 10%, 50%);\n --muted-border-color: #1f2d38;\n --primary: hsl(195, 85%, 41%);\n --primary-hover: hsl(195, 80%, 50%);\n --primary-focus: rgba(16, 149, 193, 0.25);\n --primary-inverse: #fff;\n --secondary: hsl(205, 15%, 41%);\n --secondary-hover: hsl(205, 10%, 50%);\n --secondary-focus: rgba(115, 130, 140, 0.25);\n --secondary-inverse: #fff;\n --contrast: hsl(205, 20%, 94%);\n --contrast-hover: #fff;\n --contrast-focus: rgba(115, 130, 140, 0.25);\n --contrast-inverse: #000;\n --mark-background-color: #d1c284;\n --mark-color: #11191f;\n --ins-color: #388e3c;\n --del-color: #c62828;\n --blockquote-border-color: var(--muted-border-color);\n --blockquote-footer-color: var(--muted-color);\n --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);\n --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);\n --form-element-background-color: #11191f;\n --form-element-border-color: #374956;\n --form-element-color: var(--color);\n --form-element-placeholder-color: var(--muted-color);\n --form-element-active-background-color: var(--form-element-background-color);\n --form-element-active-border-color: var(--primary);\n --form-element-focus-color: var(--primary-focus);\n --form-element-disabled-background-color: hsl(205, 25%, 23%);\n --form-element-disabled-border-color: hsl(205, 20%, 32%);\n --form-element-disabled-opacity: 0.5;\n --form-element-invalid-border-color: #b71c1c;\n --form-element-invalid-active-border-color: #c62828;\n --form-element-invalid-focus-color: rgba(198, 40, 40, 0.25);\n --form-element-valid-border-color: #2e7d32;\n --form-element-valid-active-border-color: #388e3c;\n --form-element-valid-focus-color: rgba(56, 142, 60, 0.25);\n --switch-background-color: #374956;\n --switch-color: var(--primary-inverse);\n --switch-checked-background-color: var(--primary);\n --range-border-color: #24333e;\n --range-active-border-color: hsl(205, 25%, 23%);\n --range-thumb-border-color: var(--background-color);\n --range-thumb-color: var(--secondary);\n --range-thumb-hover-color: var(--secondary-hover);\n --range-thumb-active-color: var(--primary);\n --table-border-color: var(--muted-border-color);\n --table-row-stripped-background-color: rgba(115, 130, 140, 0.05);\n --code-background-color: #18232c;\n --code-color: var(--muted-color);\n --code-kbd-background-color: var(--contrast);\n --code-kbd-color: var(--contrast-inverse);\n --code-tag-color: hsl(330, 30%, 50%);\n --code-property-color: hsl(185, 30%, 50%);\n --code-value-color: hsl(40, 10%, 50%);\n --code-comment-color: #4d606d;\n --accordion-border-color: var(--muted-border-color);\n --accordion-active-summary-color: var(--primary);\n --accordion-close-summary-color: var(--color);\n --accordion-open-summary-color: var(--muted-color);\n --card-background-color: #141e26;\n --card-border-color: var(--card-background-color);\n --card-box-shadow:\n 0.0145rem 0.029rem 0.174rem rgba(0, 0, 0, 0.01698),\n 0.0335rem 0.067rem 0.402rem rgba(0, 0, 0, 0.024),\n 0.0625rem 0.125rem 0.75rem rgba(0, 0, 0, 0.03),\n 0.1125rem 0.225rem 1.35rem rgba(0, 0, 0, 0.036),\n 0.2085rem 0.417rem 2.502rem rgba(0, 0, 0, 0.04302),\n 0.5rem 1rem 6rem rgba(0, 0, 0, 0.06),\n 0 0 0 0.0625rem rgba(0, 0, 0, 0.015);\n --card-sectionning-background-color: #18232c;\n --dropdown-background-color: hsl(205, 30%, 15%);\n --dropdown-border-color: #24333e;\n --dropdown-box-shadow: var(--card-box-shadow);\n --dropdown-color: var(--color);\n --dropdown-hover-background-color: rgba(36, 51, 62, 0.75);\n --modal-overlay-background-color: rgba(36, 51, 62, 0.8);\n --progress-background-color: #24333e;\n --progress-color: var(--primary);\n --loading-spinner-opacity: 0.5;\n --tooltip-background-color: var(--contrast);\n --tooltip-color: var(--contrast-inverse);\n --icon-checkbox: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron-button: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron-button-inverse: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-close: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E\");\n --icon-date: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E\");\n --icon-invalid: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E\");\n --icon-minus: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E\");\n --icon-search: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E\");\n --icon-time: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-valid: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E\");\n color-scheme: dark;\n }\n}\n[data-theme=dark] {\n --background-color: #11191f;\n --color: hsl(205, 16%, 77%);\n --h1-color: hsl(205, 20%, 94%);\n --h2-color: #e1e6eb;\n --h3-color: hsl(205, 18%, 86%);\n --h4-color: #c8d1d8;\n --h5-color: hsl(205, 16%, 77%);\n --h6-color: #afbbc4;\n --muted-color: hsl(205, 10%, 50%);\n --muted-border-color: #1f2d38;\n --primary: hsl(195, 85%, 41%);\n --primary-hover: hsl(195, 80%, 50%);\n --primary-focus: rgba(16, 149, 193, 0.25);\n --primary-inverse: #fff;\n --secondary: hsl(205, 15%, 41%);\n --secondary-hover: hsl(205, 10%, 50%);\n --secondary-focus: rgba(115, 130, 140, 0.25);\n --secondary-inverse: #fff;\n --contrast: hsl(205, 20%, 94%);\n --contrast-hover: #fff;\n --contrast-focus: rgba(115, 130, 140, 0.25);\n --contrast-inverse: #000;\n --mark-background-color: #d1c284;\n --mark-color: #11191f;\n --ins-color: #388e3c;\n --del-color: #c62828;\n --blockquote-border-color: var(--muted-border-color);\n --blockquote-footer-color: var(--muted-color);\n --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);\n --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);\n --form-element-background-color: #11191f;\n --form-element-border-color: #374956;\n --form-element-color: var(--color);\n --form-element-placeholder-color: var(--muted-color);\n --form-element-active-background-color: var(--form-element-background-color);\n --form-element-active-border-color: var(--primary);\n --form-element-focus-color: var(--primary-focus);\n --form-element-disabled-background-color: hsl(205, 25%, 23%);\n --form-element-disabled-border-color: hsl(205, 20%, 32%);\n --form-element-disabled-opacity: 0.5;\n --form-element-invalid-border-color: #b71c1c;\n --form-element-invalid-active-border-color: #c62828;\n --form-element-invalid-focus-color: rgba(198, 40, 40, 0.25);\n --form-element-valid-border-color: #2e7d32;\n --form-element-valid-active-border-color: #388e3c;\n --form-element-valid-focus-color: rgba(56, 142, 60, 0.25);\n --switch-background-color: #374956;\n --switch-color: var(--primary-inverse);\n --switch-checked-background-color: var(--primary);\n --range-border-color: #24333e;\n --range-active-border-color: hsl(205, 25%, 23%);\n --range-thumb-border-color: var(--background-color);\n --range-thumb-color: var(--secondary);\n --range-thumb-hover-color: var(--secondary-hover);\n --range-thumb-active-color: var(--primary);\n --table-border-color: var(--muted-border-color);\n --table-row-stripped-background-color: rgba(115, 130, 140, 0.05);\n --code-background-color: #18232c;\n --code-color: var(--muted-color);\n --code-kbd-background-color: var(--contrast);\n --code-kbd-color: var(--contrast-inverse);\n --code-tag-color: hsl(330, 30%, 50%);\n --code-property-color: hsl(185, 30%, 50%);\n --code-value-color: hsl(40, 10%, 50%);\n --code-comment-color: #4d606d;\n --accordion-border-color: var(--muted-border-color);\n --accordion-active-summary-color: var(--primary);\n --accordion-close-summary-color: var(--color);\n --accordion-open-summary-color: var(--muted-color);\n --card-background-color: #141e26;\n --card-border-color: var(--card-background-color);\n --card-box-shadow:\n 0.0145rem 0.029rem 0.174rem rgba(0, 0, 0, 0.01698),\n 0.0335rem 0.067rem 0.402rem rgba(0, 0, 0, 0.024),\n 0.0625rem 0.125rem 0.75rem rgba(0, 0, 0, 0.03),\n 0.1125rem 0.225rem 1.35rem rgba(0, 0, 0, 0.036),\n 0.2085rem 0.417rem 2.502rem rgba(0, 0, 0, 0.04302),\n 0.5rem 1rem 6rem rgba(0, 0, 0, 0.06),\n 0 0 0 0.0625rem rgba(0, 0, 0, 0.015);\n --card-sectionning-background-color: #18232c;\n --dropdown-background-color: hsl(205, 30%, 15%);\n --dropdown-border-color: #24333e;\n --dropdown-box-shadow: var(--card-box-shadow);\n --dropdown-color: var(--color);\n --dropdown-hover-background-color: rgba(36, 51, 62, 0.75);\n --modal-overlay-background-color: rgba(36, 51, 62, 0.8);\n --progress-background-color: #24333e;\n --progress-color: var(--primary);\n --loading-spinner-opacity: 0.5;\n --tooltip-background-color: var(--contrast);\n --tooltip-color: var(--contrast-inverse);\n --icon-checkbox: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron-button: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron-button-inverse: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-close: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E\");\n --icon-date: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E\");\n --icon-invalid: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E\");\n --icon-minus: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E\");\n --icon-search: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E\");\n --icon-time: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-valid: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E\");\n color-scheme: dark;\n}\n\nprogress,\n[type=checkbox],\n[type=radio],\n[type=range] {\n accent-color: var(--primary);\n}\n\n/**\n * Document\n * Content-box & Responsive typography\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n background-repeat: no-repeat;\n}\n\n::before,\n::after {\n text-decoration: inherit;\n vertical-align: inherit;\n}\n\n:where(:root) {\n -webkit-tap-highlight-color: transparent;\n -webkit-text-size-adjust: 100%;\n text-size-adjust: 100%;\n background-color: var(--background-color);\n color: var(--color);\n font-weight: var(--font-weight);\n font-size: var(--font-size);\n line-height: var(--line-height);\n font-family: var(--font-family);\n text-rendering: optimizeLegibility;\n overflow-wrap: break-word;\n cursor: default;\n tab-size: 4;\n}\n\n/**\n * Sectioning\n * Container and responsive spacings for header, main, footer\n */\nmain {\n display: block;\n}\n\nbody {\n width: 100%;\n margin: 0;\n}\nbody > header,\nbody > main,\nbody > footer {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding: var(--block-spacing-vertical) 0;\n}\n\n/**\n* Container\n*/\n.container,\n.container-fluid {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: var(--spacing);\n padding-left: var(--spacing);\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 510px;\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 700px;\n }\n}\n@media (min-width: 992px) {\n .container {\n max-width: 920px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n max-width: 1130px;\n }\n}\n\n/**\n * Section\n * Responsive spacings for section\n */\nsection {\n margin-bottom: var(--block-spacing-vertical);\n}\n\n/**\n* Grid\n* Minimal grid system with auto-layout columns\n*/\n.grid {\n grid-column-gap: var(--grid-spacing-horizontal);\n grid-row-gap: var(--grid-spacing-vertical);\n display: grid;\n grid-template-columns: 1fr;\n margin: 0;\n}\n@media (min-width: 992px) {\n .grid {\n grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));\n }\n}\n.grid > * {\n min-width: 0;\n}\n\n/**\n * Horizontal scroller ()\n */\nfigure {\n display: block;\n margin: 0;\n padding: 0;\n overflow-x: auto;\n}\nfigure figcaption {\n padding: calc(var(--spacing) * 0.5) 0;\n color: var(--muted-color);\n}\n\n/**\n * Typography\n */\nb,\nstrong {\n font-weight: bolder;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\naddress,\nblockquote,\ndl,\nfigure,\nform,\nol,\np,\npre,\ntable,\nul {\n margin-top: 0;\n margin-bottom: var(--typography-spacing-vertical);\n color: var(--color);\n font-style: normal;\n font-weight: var(--font-weight);\n font-size: var(--font-size);\n}\n\na,\n[role=link] {\n --color: var(--primary);\n --background-color: transparent;\n outline: none;\n background-color: var(--background-color);\n color: var(--color);\n text-decoration: var(--text-decoration);\n transition: background-color var(--transition), color var(--transition), text-decoration var(--transition), box-shadow var(--transition);\n}\na:is([aria-current], :hover, :active, :focus),\n[role=link]:is([aria-current], :hover, :active, :focus) {\n --color: var(--primary-hover);\n --text-decoration: underline;\n}\na:focus,\n[role=link]:focus {\n --background-color: var(--primary-focus);\n}\na.secondary,\n[role=link].secondary {\n --color: var(--secondary);\n}\na.secondary:is([aria-current], :hover, :active, :focus),\n[role=link].secondary:is([aria-current], :hover, :active, :focus) {\n --color: var(--secondary-hover);\n}\na.secondary:focus,\n[role=link].secondary:focus {\n --background-color: var(--secondary-focus);\n}\na.contrast,\n[role=link].contrast {\n --color: var(--contrast);\n}\na.contrast:is([aria-current], :hover, :active, :focus),\n[role=link].contrast:is([aria-current], :hover, :active, :focus) {\n --color: var(--contrast-hover);\n}\na.contrast:focus,\n[role=link].contrast:focus {\n --background-color: var(--contrast-focus);\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: var(--typography-spacing-vertical);\n color: var(--color);\n font-weight: var(--font-weight);\n font-size: var(--font-size);\n font-family: var(--font-family);\n}\n\nh1 {\n --color: var(--h1-color);\n}\n\nh2 {\n --color: var(--h2-color);\n}\n\nh3 {\n --color: var(--h3-color);\n}\n\nh4 {\n --color: var(--h4-color);\n}\n\nh5 {\n --color: var(--h5-color);\n}\n\nh6 {\n --color: var(--h6-color);\n}\n\n:where(address, blockquote, dl, figure, form, ol, p, pre, table, ul) ~ :is(h1, h2, h3, h4, h5, h6) {\n margin-top: var(--typography-spacing-vertical);\n}\n\nhgroup,\n.headings {\n margin-bottom: var(--typography-spacing-vertical);\n}\nhgroup > *,\n.headings > * {\n margin-bottom: 0;\n}\nhgroup > *:last-child,\n.headings > *:last-child {\n --color: var(--muted-color);\n --font-weight: unset;\n font-size: 1rem;\n font-family: unset;\n}\n\np {\n margin-bottom: var(--typography-spacing-vertical);\n}\n\nsmall {\n font-size: var(--font-size);\n}\n\n:where(dl, ol, ul) {\n padding-right: 0;\n padding-left: var(--spacing);\n padding-inline-start: var(--spacing);\n padding-inline-end: 0;\n}\n:where(dl, ol, ul) li {\n margin-bottom: calc(var(--typography-spacing-vertical) * 0.25);\n}\n\n:where(dl, ol, ul) :is(dl, ol, ul) {\n margin: 0;\n margin-top: calc(var(--typography-spacing-vertical) * 0.25);\n}\n\nul li {\n list-style: square;\n}\n\nmark {\n padding: 0.125rem 0.25rem;\n background-color: var(--mark-background-color);\n color: var(--mark-color);\n vertical-align: baseline;\n}\n\nblockquote {\n display: block;\n margin: var(--typography-spacing-vertical) 0;\n padding: var(--spacing);\n border-right: none;\n border-left: 0.25rem solid var(--blockquote-border-color);\n border-inline-start: 0.25rem solid var(--blockquote-border-color);\n border-inline-end: none;\n}\nblockquote footer {\n margin-top: calc(var(--typography-spacing-vertical) * 0.5);\n color: var(--blockquote-footer-color);\n}\n\nabbr[title] {\n border-bottom: 1px dotted;\n text-decoration: none;\n cursor: help;\n}\n\nins {\n color: var(--ins-color);\n text-decoration: none;\n}\n\ndel {\n color: var(--del-color);\n}\n\n::selection {\n background-color: var(--primary-focus);\n}\n\n/**\n * Embedded content\n */\n:where(audio, canvas, iframe, img, svg, video) {\n vertical-align: middle;\n}\n\naudio,\nvideo {\n display: inline-block;\n}\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n:where(iframe) {\n border-style: none;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n border-style: none;\n}\n\n:where(svg:not([fill])) {\n fill: currentColor;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/**\n * Button\n */\nbutton {\n margin: 0;\n overflow: visible;\n font-family: inherit;\n text-transform: none;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\n\nbutton {\n display: block;\n width: 100%;\n margin-bottom: var(--spacing);\n}\n\n[role=button] {\n display: inline-block;\n text-decoration: none;\n}\n\nbutton,\ninput[type=submit],\ninput[type=button],\ninput[type=reset],\n[role=button] {\n --background-color: var(--primary);\n --border-color: var(--primary);\n --color: var(--primary-inverse);\n --box-shadow: var(--button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));\n padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);\n border: var(--border-width) solid var(--border-color);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--background-color);\n box-shadow: var(--box-shadow);\n color: var(--color);\n font-weight: var(--font-weight);\n font-size: 1rem;\n line-height: var(--line-height);\n text-align: center;\n cursor: pointer;\n transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);\n}\nbutton:is([aria-current], :hover, :active, :focus),\ninput[type=submit]:is([aria-current], :hover, :active, :focus),\ninput[type=button]:is([aria-current], :hover, :active, :focus),\ninput[type=reset]:is([aria-current], :hover, :active, :focus),\n[role=button]:is([aria-current], :hover, :active, :focus) {\n --background-color: var(--primary-hover);\n --border-color: var(--primary-hover);\n --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));\n --color: var(--primary-inverse);\n}\nbutton:focus,\ninput[type=submit]:focus,\ninput[type=button]:focus,\ninput[type=reset]:focus,\n[role=button]:focus {\n --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),\n 0 0 0 var(--outline-width) var(--primary-focus);\n}\n\n:is(button, input[type=submit], input[type=button], [role=button]).secondary,\ninput[type=reset] {\n --background-color: var(--secondary);\n --border-color: var(--secondary);\n --color: var(--secondary-inverse);\n cursor: pointer;\n}\n:is(button, input[type=submit], input[type=button], [role=button]).secondary:is([aria-current], :hover, :active, :focus),\ninput[type=reset]:is([aria-current], :hover, :active, :focus) {\n --background-color: var(--secondary-hover);\n --border-color: var(--secondary-hover);\n --color: var(--secondary-inverse);\n}\n:is(button, input[type=submit], input[type=button], [role=button]).secondary:focus,\ninput[type=reset]:focus {\n --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),\n 0 0 0 var(--outline-width) var(--secondary-focus);\n}\n\n:is(button, input[type=submit], input[type=button], [role=button]).contrast {\n --background-color: var(--contrast);\n --border-color: var(--contrast);\n --color: var(--contrast-inverse);\n}\n:is(button, input[type=submit], input[type=button], [role=button]).contrast:is([aria-current], :hover, :active, :focus) {\n --background-color: var(--contrast-hover);\n --border-color: var(--contrast-hover);\n --color: var(--contrast-inverse);\n}\n:is(button, input[type=submit], input[type=button], [role=button]).contrast:focus {\n --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),\n 0 0 0 var(--outline-width) var(--contrast-focus);\n}\n\n:is(button, input[type=submit], input[type=button], [role=button]).outline,\ninput[type=reset].outline {\n --background-color: transparent;\n --color: var(--primary);\n}\n:is(button, input[type=submit], input[type=button], [role=button]).outline:is([aria-current], :hover, :active, :focus),\ninput[type=reset].outline:is([aria-current], :hover, :active, :focus) {\n --background-color: transparent;\n --color: var(--primary-hover);\n}\n\n:is(button, input[type=submit], input[type=button], [role=button]).outline.secondary,\ninput[type=reset].outline {\n --color: var(--secondary);\n}\n:is(button, input[type=submit], input[type=button], [role=button]).outline.secondary:is([aria-current], :hover, :active, :focus),\ninput[type=reset].outline:is([aria-current], :hover, :active, :focus) {\n --color: var(--secondary-hover);\n}\n\n:is(button, input[type=submit], input[type=button], [role=button]).outline.contrast {\n --color: var(--contrast);\n}\n:is(button, input[type=submit], input[type=button], [role=button]).outline.contrast:is([aria-current], :hover, :active, :focus) {\n --color: var(--contrast-hover);\n}\n\n:where(button, [type=submit], [type=button], [type=reset], [role=button])[disabled],\n:where(fieldset[disabled]) :is(button, [type=submit], [type=button], [type=reset], [role=button]),\na[role=button]:not([href]) {\n opacity: 0.5;\n pointer-events: none;\n}\n\n/**\n * Form elements\n */\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0;\n font-size: 1rem;\n line-height: var(--line-height);\n font-family: inherit;\n letter-spacing: inherit;\n}\n\ninput {\n overflow: visible;\n}\n\nselect {\n text-transform: none;\n}\n\nlegend {\n max-width: 100%;\n padding: 0;\n color: inherit;\n white-space: normal;\n}\n\ntextarea {\n overflow: auto;\n}\n\n[type=checkbox],\n[type=radio] {\n padding: 0;\n}\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\n:-moz-focusring {\n outline: none;\n}\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n::-ms-expand {\n display: none;\n}\n\n[type=file],\n[type=range] {\n padding: 0;\n border-width: 0;\n}\n\ninput:not([type=checkbox], [type=radio], [type=range]) {\n height: calc(1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 + var(--border-width) * 2);\n}\n\nfieldset {\n margin: 0;\n margin-bottom: var(--spacing);\n padding: 0;\n border: 0;\n}\n\nlabel,\nfieldset legend {\n display: block;\n margin-bottom: calc(var(--spacing) * 0.25);\n font-weight: var(--form-label-font-weight, var(--font-weight));\n}\n\ninput:not([type=checkbox], [type=radio]),\nselect,\ntextarea {\n width: 100%;\n}\n\ninput:not([type=checkbox], [type=radio], [type=range], [type=file]),\nselect,\ntextarea {\n appearance: none;\n padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);\n}\n\ninput,\nselect,\ntextarea {\n --background-color: var(--form-element-background-color);\n --border-color: var(--form-element-border-color);\n --color: var(--form-element-color);\n --box-shadow: none;\n border: var(--border-width) solid var(--border-color);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--background-color);\n box-shadow: var(--box-shadow);\n color: var(--color);\n font-weight: var(--font-weight);\n transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);\n}\n\ninput:not([type=submit], [type=button], [type=reset], [type=checkbox], [type=radio], [readonly]):is(:active, :focus),\n:where(select, textarea):is(:active, :focus) {\n --background-color: var(--form-element-active-background-color);\n}\n\ninput:not([type=submit], [type=button], [type=reset], [role=switch], [readonly]):is(:active, :focus),\n:where(select, textarea):is(:active, :focus) {\n --border-color: var(--form-element-active-border-color);\n}\n\ninput:not([type=submit], [type=button], [type=reset], [type=range], [type=file], [readonly]):focus,\nselect:focus,\ntextarea:focus {\n --box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color);\n}\n\ninput:not([type=submit], [type=button], [type=reset])[disabled],\nselect[disabled],\ntextarea[disabled],\n:where(fieldset[disabled]) :is(input:not([type=submit], [type=button], [type=reset]), select, textarea) {\n --background-color: var(--form-element-disabled-background-color);\n --border-color: var(--form-element-disabled-border-color);\n opacity: var(--form-element-disabled-opacity);\n pointer-events: none;\n}\n\n:where(input, select, textarea):not([type=checkbox], [type=radio], [type=date], [type=datetime-local], [type=month], [type=time], [type=week])[aria-invalid] {\n padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem) !important;\n padding-left: var(--form-element-spacing-horizontal);\n padding-inline-start: var(--form-element-spacing-horizontal) !important;\n padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem) !important;\n background-position: center right 0.75rem;\n background-size: 1rem auto;\n background-repeat: no-repeat;\n}\n:where(input, select, textarea):not([type=checkbox], [type=radio], [type=date], [type=datetime-local], [type=month], [type=time], [type=week])[aria-invalid=false] {\n background-image: var(--icon-valid);\n}\n:where(input, select, textarea):not([type=checkbox], [type=radio], [type=date], [type=datetime-local], [type=month], [type=time], [type=week])[aria-invalid=true] {\n background-image: var(--icon-invalid);\n}\n:where(input, select, textarea)[aria-invalid=false] {\n --border-color: var(--form-element-valid-border-color);\n}\n:where(input, select, textarea)[aria-invalid=false]:is(:active, :focus) {\n --border-color: var(--form-element-valid-active-border-color) !important;\n --box-shadow: 0 0 0 var(--outline-width) var(--form-element-valid-focus-color) !important;\n}\n:where(input, select, textarea)[aria-invalid=true] {\n --border-color: var(--form-element-invalid-border-color);\n}\n:where(input, select, textarea)[aria-invalid=true]:is(:active, :focus) {\n --border-color: var(--form-element-invalid-active-border-color) !important;\n --box-shadow: 0 0 0 var(--outline-width) var(--form-element-invalid-focus-color) !important;\n}\n\n[dir=rtl] :where(input, select, textarea):not([type=checkbox], [type=radio]):is([aria-invalid], [aria-invalid=true], [aria-invalid=false]) {\n background-position: center left 0.75rem;\n}\n\ninput::placeholder,\ninput::-webkit-input-placeholder,\ntextarea::placeholder,\ntextarea::-webkit-input-placeholder,\nselect:invalid {\n color: var(--form-element-placeholder-color);\n opacity: 1;\n}\n\ninput:not([type=checkbox], [type=radio]),\nselect,\ntextarea {\n margin-bottom: var(--spacing);\n}\n\nselect::-ms-expand {\n border: 0;\n background-color: transparent;\n}\nselect:not([multiple], [size]) {\n padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem);\n padding-left: var(--form-element-spacing-horizontal);\n padding-inline-start: var(--form-element-spacing-horizontal);\n padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);\n background-image: var(--icon-chevron);\n background-position: center right 0.75rem;\n background-size: 1rem auto;\n background-repeat: no-repeat;\n}\n\n[dir=rtl] select:not([multiple], [size]) {\n background-position: center left 0.75rem;\n}\n\n:where(input, select, textarea, .grid) + small {\n display: block;\n width: 100%;\n margin-top: calc(var(--spacing) * -0.75);\n margin-bottom: var(--spacing);\n color: var(--muted-color);\n}\n\nlabel > :where(input, select, textarea) {\n margin-top: calc(var(--spacing) * 0.25);\n}\n\n/**\n * Form elements\n * Checkboxes & Radios\n */\n[type=checkbox],\n[type=radio] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: 1.25em;\n height: 1.25em;\n margin-top: -0.125em;\n margin-right: 0.375em;\n margin-left: 0;\n margin-inline-start: 0;\n margin-inline-end: 0.375em;\n border-width: var(--border-width);\n font-size: inherit;\n vertical-align: middle;\n cursor: pointer;\n}\n[type=checkbox]::-ms-check,\n[type=radio]::-ms-check {\n display: none;\n}\n[type=checkbox]:checked, [type=checkbox]:checked:active, [type=checkbox]:checked:focus,\n[type=radio]:checked,\n[type=radio]:checked:active,\n[type=radio]:checked:focus {\n --background-color: var(--primary);\n --border-color: var(--primary);\n background-image: var(--icon-checkbox);\n background-position: center;\n background-size: 0.75em auto;\n background-repeat: no-repeat;\n}\n[type=checkbox] ~ label,\n[type=radio] ~ label {\n display: inline-block;\n margin-right: 0.375em;\n margin-bottom: 0;\n cursor: pointer;\n}\n\n[type=checkbox]:indeterminate {\n --background-color: var(--primary);\n --border-color: var(--primary);\n background-image: var(--icon-minus);\n background-position: center;\n background-size: 0.75em auto;\n background-repeat: no-repeat;\n}\n\n[type=radio] {\n border-radius: 50%;\n}\n[type=radio]:checked, [type=radio]:checked:active, [type=radio]:checked:focus {\n --background-color: var(--primary-inverse);\n border-width: 0.35em;\n background-image: none;\n}\n\n[type=checkbox][role=switch] {\n --background-color: var(--switch-background-color);\n --border-color: var(--switch-background-color);\n --color: var(--switch-color);\n width: 2.25em;\n height: 1.25em;\n border: var(--border-width) solid var(--border-color);\n border-radius: 1.25em;\n background-color: var(--background-color);\n line-height: 1.25em;\n}\n[type=checkbox][role=switch]:focus {\n --background-color: var(--switch-background-color);\n --border-color: var(--switch-background-color);\n}\n[type=checkbox][role=switch]:checked {\n --background-color: var(--switch-checked-background-color);\n --border-color: var(--switch-checked-background-color);\n}\n[type=checkbox][role=switch]:before {\n display: block;\n width: calc(1.25em - (var(--border-width) * 2));\n height: 100%;\n border-radius: 50%;\n background-color: var(--color);\n content: \"\";\n transition: margin 0.1s ease-in-out;\n}\n[type=checkbox][role=switch]:checked {\n background-image: none;\n}\n[type=checkbox][role=switch]:checked::before {\n margin-left: calc(1.125em - var(--border-width));\n margin-inline-start: calc(1.125em - var(--border-width));\n}\n\n[type=checkbox][aria-invalid=false],\n[type=checkbox]:checked[aria-invalid=false],\n[type=radio][aria-invalid=false],\n[type=radio]:checked[aria-invalid=false],\n[type=checkbox][role=switch][aria-invalid=false],\n[type=checkbox][role=switch]:checked[aria-invalid=false] {\n --border-color: var(--form-element-valid-border-color);\n}\n[type=checkbox][aria-invalid=true],\n[type=checkbox]:checked[aria-invalid=true],\n[type=radio][aria-invalid=true],\n[type=radio]:checked[aria-invalid=true],\n[type=checkbox][role=switch][aria-invalid=true],\n[type=checkbox][role=switch]:checked[aria-invalid=true] {\n --border-color: var(--form-element-invalid-border-color);\n}\n\n/**\n * Form elements\n * Alternatives input types (Not Checkboxes & Radios)\n */\n[type=color]::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n[type=color]::-moz-focus-inner {\n padding: 0;\n}\n[type=color]::-webkit-color-swatch {\n border: 0;\n border-radius: calc(var(--border-radius) * 0.5);\n}\n[type=color]::-moz-color-swatch {\n border: 0;\n border-radius: calc(var(--border-radius) * 0.5);\n}\n\ninput:not([type=checkbox], [type=radio], [type=range], [type=file]):is([type=date], [type=datetime-local], [type=month], [type=time], [type=week]) {\n --icon-position: 0.75rem;\n --icon-width: 1rem;\n padding-right: calc(var(--icon-width) + var(--icon-position));\n background-image: var(--icon-date);\n background-position: center right var(--icon-position);\n background-size: var(--icon-width) auto;\n background-repeat: no-repeat;\n}\ninput:not([type=checkbox], [type=radio], [type=range], [type=file])[type=time] {\n background-image: var(--icon-time);\n}\n\n[type=date]::-webkit-calendar-picker-indicator,\n[type=datetime-local]::-webkit-calendar-picker-indicator,\n[type=month]::-webkit-calendar-picker-indicator,\n[type=time]::-webkit-calendar-picker-indicator,\n[type=week]::-webkit-calendar-picker-indicator {\n width: var(--icon-width);\n margin-right: calc(var(--icon-width) * -1);\n margin-left: var(--icon-position);\n opacity: 0;\n}\n\n[dir=rtl] :is([type=date], [type=datetime-local], [type=month], [type=time], [type=week]) {\n text-align: right;\n}\n\n[type=file] {\n --color: var(--muted-color);\n padding: calc(var(--form-element-spacing-vertical) * 0.5) 0;\n border: 0;\n border-radius: 0;\n background: none;\n}\n[type=file]::file-selector-button {\n --background-color: var(--secondary);\n --border-color: var(--secondary);\n --color: var(--secondary-inverse);\n margin-right: calc(var(--spacing) / 2);\n margin-left: 0;\n margin-inline-start: 0;\n margin-inline-end: calc(var(--spacing) / 2);\n padding: calc(var(--form-element-spacing-vertical) * 0.5) calc(var(--form-element-spacing-horizontal) * 0.5);\n border: var(--border-width) solid var(--border-color);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--background-color);\n box-shadow: var(--box-shadow);\n color: var(--color);\n font-weight: var(--font-weight);\n font-size: 1rem;\n line-height: var(--line-height);\n text-align: center;\n cursor: pointer;\n transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);\n}\n[type=file]::file-selector-button:is(:hover, :active, :focus) {\n --background-color: var(--secondary-hover);\n --border-color: var(--secondary-hover);\n}\n[type=file]::-webkit-file-upload-button {\n --background-color: var(--secondary);\n --border-color: var(--secondary);\n --color: var(--secondary-inverse);\n margin-right: calc(var(--spacing) / 2);\n margin-left: 0;\n margin-inline-start: 0;\n margin-inline-end: calc(var(--spacing) / 2);\n padding: calc(var(--form-element-spacing-vertical) * 0.5) calc(var(--form-element-spacing-horizontal) * 0.5);\n border: var(--border-width) solid var(--border-color);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--background-color);\n box-shadow: var(--box-shadow);\n color: var(--color);\n font-weight: var(--font-weight);\n font-size: 1rem;\n line-height: var(--line-height);\n text-align: center;\n cursor: pointer;\n transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);\n}\n[type=file]::-webkit-file-upload-button:is(:hover, :active, :focus) {\n --background-color: var(--secondary-hover);\n --border-color: var(--secondary-hover);\n}\n[type=file]::-ms-browse {\n --background-color: var(--secondary);\n --border-color: var(--secondary);\n --color: var(--secondary-inverse);\n margin-right: calc(var(--spacing) / 2);\n margin-left: 0;\n margin-inline-start: 0;\n margin-inline-end: calc(var(--spacing) / 2);\n padding: calc(var(--form-element-spacing-vertical) * 0.5) calc(var(--form-element-spacing-horizontal) * 0.5);\n border: var(--border-width) solid var(--border-color);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--background-color);\n box-shadow: var(--box-shadow);\n color: var(--color);\n font-weight: var(--font-weight);\n font-size: 1rem;\n line-height: var(--line-height);\n text-align: center;\n cursor: pointer;\n transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);\n}\n[type=file]::-ms-browse:is(:hover, :active, :focus) {\n --background-color: var(--secondary-hover);\n --border-color: var(--secondary-hover);\n}\n\n[type=range] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: 100%;\n height: 1.25rem;\n background: none;\n}\n[type=range]::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.25rem;\n border-radius: var(--border-radius);\n background-color: var(--range-border-color);\n transition: background-color var(--transition), box-shadow var(--transition);\n}\n[type=range]::-moz-range-track {\n width: 100%;\n height: 0.25rem;\n border-radius: var(--border-radius);\n background-color: var(--range-border-color);\n transition: background-color var(--transition), box-shadow var(--transition);\n}\n[type=range]::-ms-track {\n width: 100%;\n height: 0.25rem;\n border-radius: var(--border-radius);\n background-color: var(--range-border-color);\n transition: background-color var(--transition), box-shadow var(--transition);\n}\n[type=range]::-webkit-slider-thumb {\n -webkit-appearance: none;\n width: 1.25rem;\n height: 1.25rem;\n margin-top: -0.5rem;\n border: 2px solid var(--range-thumb-border-color);\n border-radius: 50%;\n background-color: var(--range-thumb-color);\n cursor: pointer;\n transition: background-color var(--transition), transform var(--transition);\n}\n[type=range]::-moz-range-thumb {\n -webkit-appearance: none;\n width: 1.25rem;\n height: 1.25rem;\n margin-top: -0.5rem;\n border: 2px solid var(--range-thumb-border-color);\n border-radius: 50%;\n background-color: var(--range-thumb-color);\n cursor: pointer;\n transition: background-color var(--transition), transform var(--transition);\n}\n[type=range]::-ms-thumb {\n -webkit-appearance: none;\n width: 1.25rem;\n height: 1.25rem;\n margin-top: -0.5rem;\n border: 2px solid var(--range-thumb-border-color);\n border-radius: 50%;\n background-color: var(--range-thumb-color);\n cursor: pointer;\n transition: background-color var(--transition), transform var(--transition);\n}\n[type=range]:hover, [type=range]:focus {\n --range-border-color: var(--range-active-border-color);\n --range-thumb-color: var(--range-thumb-hover-color);\n}\n[type=range]:active {\n --range-thumb-color: var(--range-thumb-active-color);\n}\n[type=range]:active::-webkit-slider-thumb {\n transform: scale(1.25);\n}\n[type=range]:active::-moz-range-thumb {\n transform: scale(1.25);\n}\n[type=range]:active::-ms-thumb {\n transform: scale(1.25);\n}\n\ninput:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] {\n padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem);\n border-radius: 5rem;\n background-image: var(--icon-search);\n background-position: center left 1.125rem;\n background-size: 1rem auto;\n background-repeat: no-repeat;\n}\ninput:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid] {\n padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem) !important;\n background-position: center left 1.125rem, center right 0.75rem;\n}\ninput:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid=false] {\n background-image: var(--icon-search), var(--icon-valid);\n}\ninput:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid=true] {\n background-image: var(--icon-search), var(--icon-invalid);\n}\n\n[type=search]::-webkit-search-cancel-button {\n -webkit-appearance: none;\n display: none;\n}\n\n[dir=rtl] :where(input):not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] {\n background-position: center right 1.125rem;\n}\n[dir=rtl] :where(input):not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid] {\n background-position: center right 1.125rem, center left 0.75rem;\n}\n\n/**\n * Table\n */\n:where(table) {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n text-indent: 0;\n}\n\nth,\ntd {\n padding: calc(var(--spacing) / 2) var(--spacing);\n border-bottom: var(--border-width) solid var(--table-border-color);\n color: var(--color);\n font-weight: var(--font-weight);\n font-size: var(--font-size);\n text-align: left;\n text-align: start;\n}\n\ntfoot th,\ntfoot td {\n border-top: var(--border-width) solid var(--table-border-color);\n border-bottom: 0;\n}\n\ntable[role=grid] tbody tr:nth-child(odd) {\n background-color: var(--table-row-stripped-background-color);\n}\n\n/**\n * Code\n */\npre,\ncode,\nkbd,\nsamp {\n font-size: 0.875em;\n font-family: var(--font-family);\n}\n\npre {\n -ms-overflow-style: scrollbar;\n overflow: auto;\n}\n\npre,\ncode,\nkbd {\n border-radius: var(--border-radius);\n background: var(--code-background-color);\n color: var(--code-color);\n font-weight: var(--font-weight);\n line-height: initial;\n}\n\ncode,\nkbd {\n display: inline-block;\n padding: 0.375rem 0.5rem;\n}\n\npre {\n display: block;\n margin-bottom: var(--spacing);\n overflow-x: auto;\n}\npre > code {\n display: block;\n padding: var(--spacing);\n background: none;\n font-size: 14px;\n line-height: var(--line-height);\n}\n\ncode b {\n color: var(--code-tag-color);\n font-weight: var(--font-weight);\n}\ncode i {\n color: var(--code-property-color);\n font-style: normal;\n}\ncode u {\n color: var(--code-value-color);\n text-decoration: none;\n}\ncode em {\n color: var(--code-comment-color);\n font-style: normal;\n}\n\nkbd {\n background-color: var(--code-kbd-background-color);\n color: var(--code-kbd-color);\n vertical-align: baseline;\n}\n\n/**\n * Miscs\n */\nhr {\n height: 0;\n border: 0;\n border-top: 1px solid var(--muted-border-color);\n color: inherit;\n}\n\n[hidden],\ntemplate {\n display: none !important;\n}\n\ncanvas {\n display: inline-block;\n}\n\n/**\n * Accordion ()\n */\ndetails {\n display: block;\n margin-bottom: var(--spacing);\n padding-bottom: var(--spacing);\n border-bottom: var(--border-width) solid var(--accordion-border-color);\n}\ndetails summary {\n line-height: 1rem;\n list-style-type: none;\n cursor: pointer;\n transition: color var(--transition);\n}\ndetails summary:not([role]) {\n color: var(--accordion-close-summary-color);\n}\ndetails summary::-webkit-details-marker {\n display: none;\n}\ndetails summary::marker {\n display: none;\n}\ndetails summary::-moz-list-bullet {\n list-style-type: none;\n}\ndetails summary::after {\n display: block;\n width: 1rem;\n height: 1rem;\n margin-inline-start: calc(var(--spacing, 1rem) * 0.5);\n float: right;\n transform: rotate(-90deg);\n background-image: var(--icon-chevron);\n background-position: right center;\n background-size: 1rem auto;\n background-repeat: no-repeat;\n content: \"\";\n transition: transform var(--transition);\n}\ndetails summary:focus {\n outline: none;\n}\ndetails summary:focus:not([role=button]) {\n color: var(--accordion-active-summary-color);\n}\ndetails summary[role=button] {\n width: 100%;\n text-align: left;\n}\ndetails summary[role=button]::after {\n height: calc(1rem * var(--line-height, 1.5));\n background-image: var(--icon-chevron-button);\n}\ndetails summary[role=button]:not(.outline).contrast::after {\n background-image: var(--icon-chevron-button-inverse);\n}\ndetails[open] > summary {\n margin-bottom: calc(var(--spacing));\n}\ndetails[open] > summary:not([role]):not(:focus) {\n color: var(--accordion-open-summary-color);\n}\ndetails[open] > summary::after {\n transform: rotate(0);\n}\n\n[dir=rtl] details summary {\n text-align: right;\n}\n[dir=rtl] details summary::after {\n float: left;\n background-position: left center;\n}\n\n/**\n * Card ()\n */\narticle {\n margin: var(--block-spacing-vertical) 0;\n padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);\n border-radius: var(--border-radius);\n background: var(--card-background-color);\n box-shadow: var(--card-box-shadow);\n}\narticle > header,\narticle > footer {\n margin-right: calc(var(--block-spacing-horizontal) * -1);\n margin-left: calc(var(--block-spacing-horizontal) * -1);\n padding: calc(var(--block-spacing-vertical) * 0.66) var(--block-spacing-horizontal);\n background-color: var(--card-sectionning-background-color);\n}\narticle > header {\n margin-top: calc(var(--block-spacing-vertical) * -1);\n margin-bottom: var(--block-spacing-vertical);\n border-bottom: var(--border-width) solid var(--card-border-color);\n border-top-right-radius: var(--border-radius);\n border-top-left-radius: var(--border-radius);\n}\narticle > footer {\n margin-top: var(--block-spacing-vertical);\n margin-bottom: calc(var(--block-spacing-vertical) * -1);\n border-top: var(--border-width) solid var(--card-border-color);\n border-bottom-right-radius: var(--border-radius);\n border-bottom-left-radius: var(--border-radius);\n}\n\n/**\n * Modal ()\n */\n:root {\n --scrollbar-width: 0px;\n}\n\ndialog {\n display: flex;\n z-index: 999;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n align-items: center;\n justify-content: center;\n width: inherit;\n min-width: 100%;\n height: inherit;\n min-height: 100%;\n padding: var(--spacing);\n border: 0;\n backdrop-filter: var(--modal-overlay-backdrop-filter);\n background-color: var(--modal-overlay-background-color);\n color: var(--color);\n}\ndialog article {\n max-height: calc(100vh - var(--spacing) * 2);\n overflow: auto;\n}\n@media (min-width: 576px) {\n dialog article {\n max-width: 510px;\n }\n}\n@media (min-width: 768px) {\n dialog article {\n max-width: 700px;\n }\n}\ndialog article > header,\ndialog article > footer {\n padding: calc(var(--block-spacing-vertical) * 0.5) var(--block-spacing-horizontal);\n}\ndialog article > header .close {\n margin: 0;\n margin-left: var(--spacing);\n float: right;\n}\ndialog article > footer {\n text-align: right;\n}\ndialog article > footer [role=button] {\n margin-bottom: 0;\n}\ndialog article > footer [role=button]:not(:first-of-type) {\n margin-left: calc(var(--spacing) * 0.5);\n}\ndialog article p:last-of-type {\n margin: 0;\n}\ndialog article .close {\n display: block;\n width: 1rem;\n height: 1rem;\n margin-top: calc(var(--block-spacing-vertical) * -0.5);\n margin-bottom: var(--typography-spacing-vertical);\n margin-left: auto;\n background-image: var(--icon-close);\n background-position: center;\n background-size: auto 1rem;\n background-repeat: no-repeat;\n opacity: 0.5;\n transition: opacity var(--transition);\n}\ndialog article .close:is([aria-current], :hover, :active, :focus) {\n opacity: 1;\n}\ndialog:not([open]), dialog[open=false] {\n display: none;\n}\n\n.modal-is-open {\n padding-right: var(--scrollbar-width, 0px);\n overflow: hidden;\n pointer-events: none;\n touch-action: none;\n}\n.modal-is-open dialog {\n pointer-events: auto;\n}\n\n:where(.modal-is-opening, .modal-is-closing) dialog,\n:where(.modal-is-opening, .modal-is-closing) dialog > article {\n animation-duration: 0.2s;\n animation-timing-function: ease-in-out;\n animation-fill-mode: both;\n}\n:where(.modal-is-opening, .modal-is-closing) dialog {\n animation-duration: 0.8s;\n animation-name: modal-overlay;\n}\n:where(.modal-is-opening, .modal-is-closing) dialog > article {\n animation-delay: 0.2s;\n animation-name: modal;\n}\n\n.modal-is-closing dialog,\n.modal-is-closing dialog > article {\n animation-delay: 0s;\n animation-direction: reverse;\n}\n\n@keyframes modal-overlay {\n from {\n backdrop-filter: none;\n background-color: transparent;\n }\n}\n@keyframes modal {\n from {\n transform: translateY(-100%);\n opacity: 0;\n }\n}\n/**\n * Nav\n */\n:where(nav li)::before {\n float: left;\n content: \"\";\n}\n\nnav,\nnav ul {\n display: flex;\n}\n\nnav {\n justify-content: space-between;\n}\nnav ol,\nnav ul {\n align-items: center;\n margin-bottom: 0;\n padding: 0;\n list-style: none;\n}\nnav ol:first-of-type,\nnav ul:first-of-type {\n margin-left: calc(var(--nav-element-spacing-horizontal) * -1);\n}\nnav ol:last-of-type,\nnav ul:last-of-type {\n margin-right: calc(var(--nav-element-spacing-horizontal) * -1);\n}\nnav li {\n display: inline-block;\n margin: 0;\n padding: var(--nav-element-spacing-vertical) var(--nav-element-spacing-horizontal);\n}\nnav li > * {\n --spacing: 0;\n}\nnav :where(a, [role=link]) {\n display: inline-block;\n margin: calc(var(--nav-link-spacing-vertical) * -1) calc(var(--nav-link-spacing-horizontal) * -1);\n padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);\n border-radius: var(--border-radius);\n text-decoration: none;\n}\nnav :where(a, [role=link]):is([aria-current], :hover, :active, :focus) {\n text-decoration: none;\n}\nnav[aria-label=breadcrumb] {\n align-items: center;\n justify-content: start;\n}\nnav[aria-label=breadcrumb] ul li:not(:first-child) {\n margin-inline-start: var(--nav-link-spacing-horizontal);\n}\nnav[aria-label=breadcrumb] ul li:not(:last-child) ::after {\n position: absolute;\n width: calc(var(--nav-link-spacing-horizontal) * 2);\n margin-inline-start: calc(var(--nav-link-spacing-horizontal) / 2);\n content: \"/\";\n color: var(--muted-color);\n text-align: center;\n}\nnav[aria-label=breadcrumb] a[aria-current] {\n background-color: transparent;\n color: inherit;\n text-decoration: none;\n pointer-events: none;\n}\nnav [role=button] {\n margin-right: inherit;\n margin-left: inherit;\n padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);\n}\n\naside nav,\naside ol,\naside ul,\naside li {\n display: block;\n}\naside li {\n padding: calc(var(--nav-element-spacing-vertical) * 0.5) var(--nav-element-spacing-horizontal);\n}\naside li a {\n display: block;\n}\naside li [role=button] {\n margin: inherit;\n}\n\n[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) ::after {\n content: \"\\\\\";\n}\n\n/**\n * Progress\n */\nprogress {\n display: inline-block;\n vertical-align: baseline;\n}\n\nprogress {\n -webkit-appearance: none;\n -moz-appearance: none;\n display: inline-block;\n appearance: none;\n width: 100%;\n height: 0.5rem;\n margin-bottom: calc(var(--spacing) * 0.5);\n overflow: hidden;\n border: 0;\n border-radius: var(--border-radius);\n background-color: var(--progress-background-color);\n color: var(--progress-color);\n}\nprogress::-webkit-progress-bar {\n border-radius: var(--border-radius);\n background: none;\n}\nprogress[value]::-webkit-progress-value {\n background-color: var(--progress-color);\n}\nprogress::-moz-progress-bar {\n background-color: var(--progress-color);\n}\n@media (prefers-reduced-motion: no-preference) {\n progress:indeterminate {\n background: var(--progress-background-color) linear-gradient(to right, var(--progress-color) 30%, var(--progress-background-color) 30%) top left/150% 150% no-repeat;\n animation: progress-indeterminate 1s linear infinite;\n }\n progress:indeterminate[value]::-webkit-progress-value {\n background-color: transparent;\n }\n progress:indeterminate::-moz-progress-bar {\n background-color: transparent;\n }\n}\n\n@media (prefers-reduced-motion: no-preference) {\n [dir=rtl] progress:indeterminate {\n animation-direction: reverse;\n }\n}\n\n@keyframes progress-indeterminate {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n}\n/**\n * Dropdown ([role=\"list\"])\n */\ndetails[role=list],\nli[role=list] {\n position: relative;\n}\n\ndetails[role=list] summary + ul,\nli[role=list] > ul {\n display: flex;\n z-index: 99;\n position: absolute;\n top: auto;\n right: 0;\n left: 0;\n flex-direction: column;\n margin: 0;\n padding: 0;\n border: var(--border-width) solid var(--dropdown-border-color);\n border-radius: var(--border-radius);\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n background-color: var(--dropdown-background-color);\n box-shadow: var(--card-box-shadow);\n color: var(--dropdown-color);\n white-space: nowrap;\n}\ndetails[role=list] summary + ul li,\nli[role=list] > ul li {\n width: 100%;\n margin-bottom: 0;\n padding: calc(var(--form-element-spacing-vertical) * 0.5) var(--form-element-spacing-horizontal);\n list-style: none;\n}\ndetails[role=list] summary + ul li:first-of-type,\nli[role=list] > ul li:first-of-type {\n margin-top: calc(var(--form-element-spacing-vertical) * 0.5);\n}\ndetails[role=list] summary + ul li:last-of-type,\nli[role=list] > ul li:last-of-type {\n margin-bottom: calc(var(--form-element-spacing-vertical) * 0.5);\n}\ndetails[role=list] summary + ul li a,\nli[role=list] > ul li a {\n display: block;\n margin: calc(var(--form-element-spacing-vertical) * -0.5) calc(var(--form-element-spacing-horizontal) * -1);\n padding: calc(var(--form-element-spacing-vertical) * 0.5) var(--form-element-spacing-horizontal);\n overflow: hidden;\n color: var(--dropdown-color);\n text-decoration: none;\n text-overflow: ellipsis;\n}\ndetails[role=list] summary + ul li a:hover,\nli[role=list] > ul li a:hover {\n background-color: var(--dropdown-hover-background-color);\n}\n\ndetails[role=list] summary::after,\nli[role=list] > a::after {\n display: block;\n width: 1rem;\n height: calc(1rem * var(--line-height, 1.5));\n margin-inline-start: 0.5rem;\n float: right;\n transform: rotate(0deg);\n background-position: right center;\n background-size: 1rem auto;\n background-repeat: no-repeat;\n content: \"\";\n}\n\ndetails[role=list] {\n padding: 0;\n border-bottom: none;\n}\ndetails[role=list] summary {\n margin-bottom: 0;\n}\ndetails[role=list] summary:not([role]) {\n height: calc(1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 + var(--border-width) * 2);\n padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);\n border: var(--border-width) solid var(--form-element-border-color);\n border-radius: var(--border-radius);\n background-color: var(--form-element-background-color);\n color: var(--form-element-placeholder-color);\n line-height: inherit;\n cursor: pointer;\n transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);\n}\ndetails[role=list] summary:not([role]):active, details[role=list] summary:not([role]):focus {\n border-color: var(--form-element-active-border-color);\n background-color: var(--form-element-active-background-color);\n}\ndetails[role=list] summary:not([role]):focus {\n box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color);\n}\ndetails[role=list][open] summary {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\ndetails[role=list][open] summary::before {\n display: block;\n z-index: 1;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: none;\n content: \"\";\n cursor: default;\n}\n\nnav details[role=list] summary,\nnav li[role=list] a {\n display: flex;\n direction: ltr;\n}\n\nnav details[role=list] summary + ul,\nnav li[role=list] > ul {\n min-width: fit-content;\n border-radius: var(--border-radius);\n}\nnav details[role=list] summary + ul li a,\nnav li[role=list] > ul li a {\n border-radius: 0;\n}\n\nnav details[role=list] summary,\nnav details[role=list] summary:not([role]) {\n height: auto;\n padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);\n}\nnav details[role=list][open] summary {\n border-radius: var(--border-radius);\n}\nnav details[role=list] summary + ul {\n margin-top: var(--outline-width);\n margin-inline-start: 0;\n}\nnav details[role=list] summary[role=link] {\n margin-bottom: calc(var(--nav-link-spacing-vertical) * -1);\n line-height: var(--line-height);\n}\nnav details[role=list] summary[role=link] + ul {\n margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));\n margin-inline-start: calc(var(--nav-link-spacing-horizontal) * -1);\n}\n\nli[role=list]:hover > ul,\nli[role=list] a:active ~ ul,\nli[role=list] a:focus ~ ul {\n display: flex;\n}\nli[role=list] > ul {\n display: none;\n margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));\n margin-inline-start: calc(var(--nav-element-spacing-horizontal) - var(--nav-link-spacing-horizontal));\n}\nli[role=list] > a::after {\n background-image: var(--icon-chevron);\n}\n\nlabel > details[role=list] {\n margin-top: calc(var(--spacing) * 0.25);\n margin-bottom: var(--spacing);\n}\n\n/**\n * Loading ([aria-busy=true])\n */\n[aria-busy=true] {\n cursor: progress;\n}\n\n[aria-busy=true]:not(input, select, textarea)::before {\n display: inline-block;\n width: 1em;\n height: 1em;\n border: 0.1875em solid currentColor;\n border-radius: 1em;\n border-right-color: transparent;\n content: \"\";\n vertical-align: text-bottom;\n vertical-align: -0.125em;\n animation: spinner 0.75s linear infinite;\n opacity: var(--loading-spinner-opacity);\n}\n[aria-busy=true]:not(input, select, textarea):not(:empty)::before {\n margin-right: calc(var(--spacing) * 0.5);\n margin-left: 0;\n margin-inline-start: 0;\n margin-inline-end: calc(var(--spacing) * 0.5);\n}\n[aria-busy=true]:not(input, select, textarea):empty {\n text-align: center;\n}\n\nbutton[aria-busy=true],\ninput[type=submit][aria-busy=true],\ninput[type=button][aria-busy=true],\ninput[type=reset][aria-busy=true],\na[aria-busy=true] {\n pointer-events: none;\n}\n\n@keyframes spinner {\n to {\n transform: rotate(360deg);\n }\n}\n/**\n * Tooltip ([data-tooltip])\n */\n[data-tooltip] {\n position: relative;\n}\n[data-tooltip]:not(a, button, input) {\n border-bottom: 1px dotted;\n text-decoration: none;\n cursor: help;\n}\n[data-tooltip][data-placement=top]::before, [data-tooltip][data-placement=top]::after, [data-tooltip]::before, [data-tooltip]::after {\n display: block;\n z-index: 99;\n position: absolute;\n bottom: 100%;\n left: 50%;\n padding: 0.25rem 0.5rem;\n overflow: hidden;\n transform: translate(-50%, -0.25rem);\n border-radius: var(--border-radius);\n background: var(--tooltip-background-color);\n content: attr(data-tooltip);\n color: var(--tooltip-color);\n font-style: normal;\n font-weight: var(--font-weight);\n font-size: 0.875rem;\n text-decoration: none;\n text-overflow: ellipsis;\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n}\n[data-tooltip][data-placement=top]::after, [data-tooltip]::after {\n padding: 0;\n transform: translate(-50%, 0rem);\n border-top: 0.3rem solid;\n border-right: 0.3rem solid transparent;\n border-left: 0.3rem solid transparent;\n border-radius: 0;\n background-color: transparent;\n content: \"\";\n color: var(--tooltip-background-color);\n}\n[data-tooltip][data-placement=bottom]::before, [data-tooltip][data-placement=bottom]::after {\n top: 100%;\n bottom: auto;\n transform: translate(-50%, 0.25rem);\n}\n[data-tooltip][data-placement=bottom]:after {\n transform: translate(-50%, -0.3rem);\n border: 0.3rem solid transparent;\n border-bottom: 0.3rem solid;\n}\n[data-tooltip][data-placement=left]::before, [data-tooltip][data-placement=left]::after {\n top: 50%;\n right: 100%;\n bottom: auto;\n left: auto;\n transform: translate(-0.25rem, -50%);\n}\n[data-tooltip][data-placement=left]:after {\n transform: translate(0.3rem, -50%);\n border: 0.3rem solid transparent;\n border-left: 0.3rem solid;\n}\n[data-tooltip][data-placement=right]::before, [data-tooltip][data-placement=right]::after {\n top: 50%;\n right: auto;\n bottom: auto;\n left: 100%;\n transform: translate(0.25rem, -50%);\n}\n[data-tooltip][data-placement=right]:after {\n transform: translate(-0.3rem, -50%);\n border: 0.3rem solid transparent;\n border-right: 0.3rem solid;\n}\n[data-tooltip]:focus::before, [data-tooltip]:focus::after, [data-tooltip]:hover::before, [data-tooltip]:hover::after {\n opacity: 1;\n}\n@media (hover: hover) and (pointer: fine) {\n [data-tooltip][data-placement=bottom]:focus::before, [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover [data-tooltip]:focus::before, [data-tooltip][data-placement=bottom]:hover [data-tooltip]:focus::after, [data-tooltip]:hover::before, [data-tooltip]:hover::after {\n animation-duration: 0.2s;\n animation-name: tooltip-slide-top;\n }\n [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover [data-tooltip]:focus::after, [data-tooltip]:hover::after {\n animation-name: tooltip-caret-slide-top;\n }\n [data-tooltip][data-placement=bottom]:focus::before, [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover::before, [data-tooltip][data-placement=bottom]:hover::after {\n animation-duration: 0.2s;\n animation-name: tooltip-slide-bottom;\n }\n [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover::after {\n animation-name: tooltip-caret-slide-bottom;\n }\n [data-tooltip][data-placement=left]:focus::before, [data-tooltip][data-placement=left]:focus::after, [data-tooltip][data-placement=left]:hover::before, [data-tooltip][data-placement=left]:hover::after {\n animation-duration: 0.2s;\n animation-name: tooltip-slide-left;\n }\n [data-tooltip][data-placement=left]:focus::after, [data-tooltip][data-placement=left]:hover::after {\n animation-name: tooltip-caret-slide-left;\n }\n [data-tooltip][data-placement=right]:focus::before, [data-tooltip][data-placement=right]:focus::after, [data-tooltip][data-placement=right]:hover::before, [data-tooltip][data-placement=right]:hover::after {\n animation-duration: 0.2s;\n animation-name: tooltip-slide-right;\n }\n [data-tooltip][data-placement=right]:focus::after, [data-tooltip][data-placement=right]:hover::after {\n animation-name: tooltip-caret-slide-right;\n }\n}\n@keyframes tooltip-slide-top {\n from {\n transform: translate(-50%, 0.75rem);\n opacity: 0;\n }\n to {\n transform: translate(-50%, -0.25rem);\n opacity: 1;\n }\n}\n@keyframes tooltip-caret-slide-top {\n from {\n opacity: 0;\n }\n 50% {\n transform: translate(-50%, -0.25rem);\n opacity: 0;\n }\n to {\n transform: translate(-50%, 0rem);\n opacity: 1;\n }\n}\n@keyframes tooltip-slide-bottom {\n from {\n transform: translate(-50%, -0.75rem);\n opacity: 0;\n }\n to {\n transform: translate(-50%, 0.25rem);\n opacity: 1;\n }\n}\n@keyframes tooltip-caret-slide-bottom {\n from {\n opacity: 0;\n }\n 50% {\n transform: translate(-50%, -0.5rem);\n opacity: 0;\n }\n to {\n transform: translate(-50%, -0.3rem);\n opacity: 1;\n }\n}\n@keyframes tooltip-slide-left {\n from {\n transform: translate(0.75rem, -50%);\n opacity: 0;\n }\n to {\n transform: translate(-0.25rem, -50%);\n opacity: 1;\n }\n}\n@keyframes tooltip-caret-slide-left {\n from {\n opacity: 0;\n }\n 50% {\n transform: translate(0.05rem, -50%);\n opacity: 0;\n }\n to {\n transform: translate(0.3rem, -50%);\n opacity: 1;\n }\n}\n@keyframes tooltip-slide-right {\n from {\n transform: translate(-0.75rem, -50%);\n opacity: 0;\n }\n to {\n transform: translate(0.25rem, -50%);\n opacity: 1;\n }\n}\n@keyframes tooltip-caret-slide-right {\n from {\n opacity: 0;\n }\n 50% {\n transform: translate(-0.05rem, -50%);\n opacity: 0;\n }\n to {\n transform: translate(-0.3rem, -50%);\n opacity: 1;\n }\n}\n\n/**\n * Accessibility & User interaction\n */\n[aria-controls] {\n cursor: pointer;\n}\n\n[aria-disabled=true],\n[disabled] {\n cursor: not-allowed;\n}\n\n[aria-hidden=false][hidden] {\n display: initial;\n}\n\n[aria-hidden=false][hidden]:not(:focus) {\n clip: rect(0, 0, 0, 0);\n position: absolute;\n}\n\na,\narea,\nbutton,\ninput,\nlabel,\nselect,\nsummary,\ntextarea,\n[tabindex] {\n -ms-touch-action: manipulation;\n}\n\n[dir=rtl] {\n direction: rtl;\n}\n\n/**\n* Reduce Motion Features\n*/\n@media (prefers-reduced-motion: reduce) {\n *:not([aria-busy=true]),\n :not([aria-busy=true])::before,\n :not([aria-busy=true])::after {\n background-attachment: initial !important;\n animation-duration: 1ms !important;\n animation-delay: -1ms !important;\n animation-iteration-count: 1 !important;\n scroll-behavior: auto !important;\n transition-delay: 0s !important;\n transition-duration: 0s !important;\n }\n}\n\n/*# sourceMappingURL=pico.css.map */\n","/*!\n * Pico CSS v1.5.9 (https://picocss.com)\n * Copyright 2019-2023 - Licensed under MIT\n */\n\n// Config\n@import \"variables\";\n\n// Theming\n@import \"themes/default\";\n\n// Layout\n@import \"layout/document\"; // html\n@import \"layout/sectioning\"; // body, header, main, footer\n@import \"layout/container\"; // .container, .container-fluid\n@import \"layout/section\"; // section\n@import \"layout/grid\"; // .grid\n@import \"layout/scroller\"; // figure\n\n// Content\n@import \"content/typography\"; // a, headings, p, ul, blockquote, ...\n@import \"content/embedded\"; // audio, canvas, iframe, img, svg, video\n@import \"content/button\"; // button, a[role=button], type=button, type=submit ...\n@import \"content/form\"; // input, select, textarea, label, fieldset, legend\n@import \"content/form-checkbox-radio\"; // type=checkbox, type=radio, role=switch\n@import \"content/form-alt-input-types\"; // type=color, type=date, type=file, type=search, ...\n@import \"content/table\"; // table, tr, td, ...\n@import \"content/code\"; // pre, code, ...\n@import \"content/miscs\"; // hr, template, [hidden], dialog, canvas\n\n// Components\n@import \"components/accordion\"; // details, summary\n@import \"components/card\"; // article\n@import \"components/modal\"; // dialog\n@import \"components/nav\"; // nav\n@import \"components/progress\"; // progress\n@import \"components/dropdown\"; // dropdown\n\n// Utilities\n@import \"utilities/loading\"; // aria-busy=true\n@import \"utilities/tooltip\"; // data-tooltip\n@import \"utilities/accessibility\"; // -ms-touch-action, aria-*\n@import \"utilities/reduce-motion\"; // prefers-reduced-motion\n","/**\n * Theme: default\n */\n\n// Variables\n@import \"../variables\";\n@import \"default/colors\";\n\n// Commons styles\n@import \"default/styles\";\n\n// Light theme (Default)\n// Can be forced with data-theme=\"light\"\n@import \"default/light\";\n\n// Dark theme (Auto)\n// Automatically enabled if user has Dark mode enabled\n@import \"default/dark\";\n@media only screen and (prefers-color-scheme: dark) {\n :root:not([data-theme]) {\n @include dark;\n }\n}\n\n// Dark theme (Forced)\n// Enabled if forced with data-theme=\"dark\"\n[data-theme=\"dark\"] {\n @include dark;\n}\n\n// Accent-color\nprogress,\n[type=\"checkbox\"],\n[type=\"radio\"],\n[type=\"range\"] {\n accent-color: var(--primary);\n}\n","// Commons Styles\n:root {\n // Typography\n --font-family: system-ui, -apple-system, \"Segoe UI\", \"Roboto\", \"Ubuntu\",\n \"Cantarell\", \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --line-height: 1.5;\n --font-weight: 400;\n --font-size: 16px;\n\n // Responsive typography\n @if $enable-responsive-typography {\n @if map-get($breakpoints, \"sm\") {\n @media (min-width: map-get($breakpoints, \"sm\")) {\n --font-size: 17px;\n }\n }\n\n @if map-get($breakpoints, \"md\") {\n @media (min-width: map-get($breakpoints, \"md\")) {\n --font-size: 18px;\n }\n }\n\n @if map-get($breakpoints, \"lg\") {\n @media (min-width: map-get($breakpoints, \"lg\")) {\n --font-size: 19px;\n }\n }\n\n @if map-get($breakpoints, \"xl\") {\n @media (min-width: map-get($breakpoints, \"xl\")) {\n --font-size: 20px;\n }\n }\n }\n\n // Borders\n --border-radius: 0.25rem;\n --border-width: 1px;\n --outline-width: 3px;\n\n // Spacings\n --spacing: 1rem;\n\n // Spacings for typography elements\n --typography-spacing-vertical: 1.5rem;\n\n // Spacings for body > header, body > main, body > footer, section, article\n --block-spacing-vertical: calc(var(--spacing) * 2);\n --block-spacing-horizontal: var(--spacing);\n\n @if ($enable-classes and $enable-grid) {\n --grid-spacing-vertical: 0;\n --grid-spacing-horizontal: var(--spacing);\n }\n\n // Spacings for form elements and button\n --form-element-spacing-vertical: 0.75rem;\n --form-element-spacing-horizontal: 1rem;\n\n // Spacings for nav component\n --nav-element-spacing-vertical: 1rem;\n --nav-element-spacing-horizontal: 0.5rem;\n --nav-link-spacing-vertical: 0.5rem;\n --nav-link-spacing-horizontal: 0.5rem;\n\n // Font weight for form labels & fieldsets legend\n --form-label-font-weight: var(--font-weight);\n\n // Transitions\n --transition: 0.2s ease-in-out;\n\n // Modal ()\n --modal-overlay-backdrop-filter: blur(0.25rem);\n}\n\n// Responsives spacings\n@if $enable-responsive-spacings {\n // Sectioning\n #{$semantic-root-element} > header,\n #{$semantic-root-element} > main,\n #{$semantic-root-element} > footer,\n section {\n @if map-get($breakpoints, \"sm\") {\n @media (min-width: map-get($breakpoints, \"sm\")) {\n --block-spacing-vertical: calc(var(--spacing) * 2.5);\n }\n }\n\n @if map-get($breakpoints, \"md\") {\n @media (min-width: map-get($breakpoints, \"md\")) {\n --block-spacing-vertical: calc(var(--spacing) * 3);\n }\n }\n\n @if map-get($breakpoints, \"lg\") {\n @media (min-width: map-get($breakpoints, \"lg\")) {\n --block-spacing-vertical: calc(var(--spacing) * 3.5);\n }\n }\n\n @if map-get($breakpoints, \"xl\") {\n @media (min-width: map-get($breakpoints, \"xl\")) {\n --block-spacing-vertical: calc(var(--spacing) * 4);\n }\n }\n }\n\n // Card ()\n article {\n @if map-get($breakpoints, \"sm\") {\n @media (min-width: map-get($breakpoints, \"sm\")) {\n --block-spacing-horizontal: calc(var(--spacing) * 1.25);\n }\n }\n\n @if map-get($breakpoints, \"md\") {\n @media (min-width: map-get($breakpoints, \"md\")) {\n --block-spacing-horizontal: calc(var(--spacing) * 1.5);\n }\n }\n\n @if map-get($breakpoints, \"lg\") {\n @media (min-width: map-get($breakpoints, \"lg\")) {\n --block-spacing-horizontal: calc(var(--spacing) * 1.75);\n }\n }\n\n @if map-get($breakpoints, \"xl\") {\n @media (min-width: map-get($breakpoints, \"xl\")) {\n --block-spacing-horizontal: calc(var(--spacing) * 2);\n }\n }\n }\n\n // Modal\n dialog > article {\n\n --block-spacing-vertical: calc(var(--spacing) * 2);\n --block-spacing-horizontal: var(--spacing);\n\n @if map-get($breakpoints, \"sm\") {\n @media (min-width: map-get($breakpoints, \"sm\")) {\n --block-spacing-vertical: calc(var(--spacing) * 2.5);\n --block-spacing-horizontal: calc(var(--spacing) * 1.25);\n }\n }\n\n @if map-get($breakpoints, \"md\") {\n @media (min-width: map-get($breakpoints, \"md\")) {\n --block-spacing-vertical: calc(var(--spacing) * 3);\n --block-spacing-horizontal: calc(var(--spacing) * 1.5);\n }\n }\n }\n}\n\n// Link\na {\n --text-decoration: none;\n\n // Secondary & Contrast\n @if $enable-classes {\n &.secondary,\n &.contrast {\n --text-decoration: underline;\n }\n }\n}\n\n// Small\nsmall {\n --font-size: 0.875em;\n}\n\n// Headings\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n --font-weight: 700;\n}\n\nh1 {\n --font-size: 2rem;\n --typography-spacing-vertical: 3rem;\n}\n\nh2 {\n --font-size: 1.75rem;\n --typography-spacing-vertical: 2.625rem;\n}\n\nh3 {\n --font-size: 1.5rem;\n --typography-spacing-vertical: 2.25rem;\n}\n\nh4 {\n --font-size: 1.25rem;\n --typography-spacing-vertical: 1.874rem;\n}\n\nh5 {\n --font-size: 1.125rem;\n --typography-spacing-vertical: 1.6875rem;\n}\n\n// Forms elements\n[type=\"checkbox\"],\n[type=\"radio\"] {\n --border-width: 2px;\n}\n\n[type=\"checkbox\"][role=\"switch\"] {\n --border-width: 3px;\n}\n\n// Table\nthead,\ntfoot {\n th,\n td {\n --border-width: 3px;\n }\n}\n\n:not(thead, tfoot) > * > td {\n --font-size: 0.875em;\n}\n\n// Code\npre,\ncode,\nkbd,\nsamp {\n --font-family: \"Menlo\", \"Consolas\", \"Roboto Mono\", \"Ubuntu Monospace\",\n \"Noto Mono\", \"Oxygen Mono\", \"Liberation Mono\", monospace,\n \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n}\n\nkbd {\n --font-weight: bolder;\n}\n","@import \"../../functions\";\n\n// Default: Light theme\n[data-theme=\"light\"],\n:root:not([data-theme=\"dark\"]) {\n --background-color: #{$white};\n\n // Texts colors\n --color: #{$grey-700};\n --h1-color: #{$grey-900};\n --h2-color: #{mix($grey-900, $grey-800)};\n --h3-color: #{$grey-800};\n --h4-color: #{mix($grey-800, $grey-700)};\n --h5-color: #{$grey-700};\n --h6-color: #{mix($grey-700, $grey-600)};\n\n // Muted colors\n --muted-color: #{$grey-500};\n --muted-border-color: #{$grey-50};\n\n // Primary colors\n --primary: #{$primary-600};\n --primary-hover: #{$primary-700};\n --primary-focus: #{rgba($primary-600, 0.125)};\n --primary-inverse: #{$white};\n\n // Secondary colors\n --secondary: #{$grey-600};\n --secondary-hover: #{$grey-700};\n --secondary-focus: #{rgba($grey-600, 0.125)};\n --secondary-inverse: #{$white};\n\n // Contrast colors\n --contrast: #{$grey-900};\n --contrast-hover: #{$black};\n --contrast-focus: #{rgba($grey-600, 0.125)};\n --contrast-inverse: #{$white};\n\n // Highlighted text ()\n --mark-background-color: #{mix($amber-100, $amber-50)};\n --mark-color: #{mix($grey-900, $amber-900, 75%)};\n\n // Inserted () & Deleted ()\n --ins-color: #{$green-700};\n --del-color: #{$red-800};\n\n // Blockquote\n --blockquote-border-color: var(--muted-border-color);\n --blockquote-footer-color: var(--muted-color);\n\n // Button\n // To disable box-shadow, remove the var or set to '0 0 0 rgba(0, 0, 0, 0)'\n // Don't use, 'none, 'false, 'null', '0', etc.\n --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);\n --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);\n\n // Form elements\n --form-element-background-color: transparent;\n --form-element-border-color: #{$grey-300};\n --form-element-color: var(--color);\n --form-element-placeholder-color: var(--muted-color);\n --form-element-active-background-color: transparent;\n --form-element-active-border-color: var(--primary);\n --form-element-focus-color: var(--primary-focus);\n --form-element-disabled-background-color: #{$grey-100};\n --form-element-disabled-border-color: #{$grey-300};\n --form-element-disabled-opacity: 0.5;\n --form-element-invalid-border-color: #{$red-800};\n --form-element-invalid-active-border-color: #{$red-700};\n --form-element-invalid-focus-color: #{rgba($red-700, 0.125)};\n --form-element-valid-border-color: #{$green-700};\n --form-element-valid-active-border-color: #{$green-600};\n --form-element-valid-focus-color: #{rgba($green-600, 0.125)};\n\n // Switch (input[type=\"checkbox\"][role=\"switch\"])\n --switch-background-color: #{$grey-200};\n --switch-color: var(--primary-inverse);\n --switch-checked-background-color: var(--primary);\n\n // Range (input[type=\"range\"])\n --range-border-color: #{$grey-100};\n --range-active-border-color: #{$grey-200};\n --range-thumb-border-color: var(--background-color);\n --range-thumb-color: var(--secondary);\n --range-thumb-hover-color: var(--secondary-hover);\n --range-thumb-active-color: var(--primary);\n\n // Table\n --table-border-color: var(--muted-border-color);\n --table-row-stripped-background-color: #{mix($grey-50, $white)};\n\n // Code\n --code-background-color: #{$grey-50};\n --code-color: var(--muted-color);\n --code-kbd-background-color: var(--contrast);\n --code-kbd-color: var(--contrast-inverse);\n --code-tag-color: #{hsl(330, 40%, 50%)};\n --code-property-color: #{hsl(185, 40%, 40%)};\n --code-value-color: #{hsl(40, 20%, 50%)};\n --code-comment-color: #{$grey-300};\n\n // Accordion ()\n --accordion-border-color: var(--muted-border-color);\n --accordion-close-summary-color: var(--color);\n --accordion-open-summary-color: var(--muted-color);\n\n // Card ()\n $box-shadow-elevation: 1rem;\n $box-shadow-blur-strengh: 6rem;\n $box-shadow-opacity: 0.06;\n --card-background-color: var(--background-color);\n --card-border-color: var(--muted-border-color);\n --card-box-shadow:\n #{($box-shadow-elevation * 0.5 * 0.029)} #{($box-shadow-elevation * 0.029)} #{($box-shadow-blur-strengh * 0.029)} #{rgba($grey-900, ($box-shadow-opacity * 0.283))},\n #{($box-shadow-elevation * 0.5 * 0.067)} #{($box-shadow-elevation * 0.067)} #{($box-shadow-blur-strengh * 0.067)} #{rgba($grey-900, ($box-shadow-opacity * 0.4))},\n #{($box-shadow-elevation * 0.5 * 0.125)} #{($box-shadow-elevation * 0.125)} #{($box-shadow-blur-strengh * 0.125)} #{rgba($grey-900, ($box-shadow-opacity * 0.5))},\n #{($box-shadow-elevation * 0.5 * 0.225)} #{($box-shadow-elevation * 0.225)} #{($box-shadow-blur-strengh * 0.225)} #{rgba($grey-900, ($box-shadow-opacity * 0.6))},\n #{($box-shadow-elevation * 0.5 * 0.417)} #{($box-shadow-elevation * 0.417)} #{($box-shadow-blur-strengh * 0.417)} #{rgba($grey-900, ($box-shadow-opacity * 0.717))},\n #{($box-shadow-elevation * 0.5)} #{$box-shadow-elevation} #{$box-shadow-blur-strengh} #{rgba($grey-900, $box-shadow-opacity)},\n 0 0 0 0.0625rem #{rgba($grey-900, ($box-shadow-opacity * 0.25) )};\n --card-sectionning-background-color: #{mix($grey-50, $white, 25%)};\n\n // Dropdown ()\n --dropdown-background-color: #{mix($grey-50, $white, 25%)};\n --dropdown-border-color: #{mix($grey-100, $grey-50)};\n --dropdown-box-shadow: var(--card-box-shadow);\n --dropdown-color: var(--color);\n --dropdown-hover-background-color: #{$grey-50};\n\n // Modal ()\n --modal-overlay-background-color: #{rgba($grey-100, 0.7)};\n\n // Progress\n --progress-background-color: #{$grey-100};\n --progress-color: var(--primary);\n\n // Loading ([aria-busy=true])\n --loading-spinner-opacity: 0.5;\n\n // Tooltip ([data-tooltip])\n --tooltip-background-color: var(--contrast);\n --tooltip-color: var(--contrast-inverse);\n\n // Icons\n --icon-checkbox: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-700)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron-button: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron-button-inverse: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-close: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-500)}' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E\");\n --icon-date: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-700)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E\");\n --icon-invalid: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($red-800)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E\");\n --icon-minus: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E\");\n --icon-search: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-700)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E\");\n --icon-time: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-700)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E\"); \n --icon-valid: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($green-700)}' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E\");\n \n // Document\n color-scheme: light;\n}\n","@import \"../../functions\";\n\n// Default: Dark theme\n@mixin dark {\n --background-color: #{mix($black, $grey-900, 37.5%)};\n\n // Texts colors\n --color: #{$grey-200};\n --h1-color: #{$grey-50};\n --h2-color: #{mix($grey-100, $grey-50)};\n --h3-color: #{$grey-100};\n --h4-color: #{mix($grey-200, $grey-100)};\n --h5-color: #{$grey-200};\n --h6-color: #{mix($grey-300, $grey-200)};\n\n // Muted colors\n --muted-color: #{$grey-500};\n --muted-border-color: #{mix($grey-900, $grey-800, 75%)};\n\n // Primary colors\n --primary: #{$primary-600};\n --primary-hover: #{$primary-500};\n --primary-focus: #{rgba($primary-600, 0.25)};\n --primary-inverse: #{$white};\n\n // Secondary colors\n --secondary: #{$grey-600};\n --secondary-hover: #{$grey-500};\n --secondary-focus: #{rgba($grey-500, 0.25)};\n --secondary-inverse: #{$white};\n\n // Contrast colors\n --contrast: #{$grey-50};\n --contrast-hover: #{$white};\n --contrast-focus: #{rgba($grey-500, 0.25)};\n --contrast-inverse: #{$black};\n\n // Highlighted text ()\n --mark-background-color: #{mix($grey-300, $amber-300)};\n --mark-color: #{mix($black, $grey-900, 37.5%)};\n\n // Inserted () & Deleted ()\n --ins-color: #{$green-700};\n --del-color: #{$red-800};\n\n // Blockquote\n --blockquote-border-color: var(--muted-border-color);\n --blockquote-footer-color: var(--muted-color);\n\n // Button\n // To disable box-shadow, remove the var or set to '0 0 0 rgba(0, 0, 0, 0)'\n // Don't use, 'none, 'false, 'null', '0', etc.\n --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);\n --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);\n\n // Form elements\n --form-element-background-color: #{mix($black, $grey-900, 37.5%)};\n --form-element-border-color: #{mix($grey-800, $grey-700)};\n --form-element-color: var(--color);\n --form-element-placeholder-color: var(--muted-color);\n --form-element-active-background-color: var(--form-element-background-color);\n --form-element-active-border-color: var(--primary);\n --form-element-focus-color: var(--primary-focus);\n --form-element-disabled-background-color: #{$grey-800};\n --form-element-disabled-border-color: #{$grey-700};\n --form-element-disabled-opacity: 0.5;\n --form-element-invalid-border-color: #{$red-900};\n --form-element-invalid-active-border-color: #{$red-800};\n --form-element-invalid-focus-color: #{rgba($red-800, 0.25)};\n --form-element-valid-border-color: #{$green-800};\n --form-element-valid-active-border-color: #{$green-700};\n --form-element-valid-focus-color: #{rgba($green-700, 0.25)};\n\n // Switch (input[type=\"checkbox\"][role=\"switch\"])\n --switch-background-color: #{mix($grey-800, $grey-700)};\n --switch-color: var(--primary-inverse);\n --switch-checked-background-color: var(--primary);\n\n // Range (input[type=\"range\"])\n --range-border-color: #{mix($grey-900, $grey-800)};\n --range-active-border-color: #{$grey-800};\n --range-thumb-border-color: var(--background-color);\n --range-thumb-color: var(--secondary);\n --range-thumb-hover-color: var(--secondary-hover);\n --range-thumb-active-color: var(--primary);\n\n // Table\n --table-border-color: var(--muted-border-color);\n --table-row-stripped-background-color: #{rgba($grey-500, 0.05)};\n\n // Code\n --code-background-color: #{mix($black, $grey-900, 12.5%)};\n --code-color: var(--muted-color);\n --code-kbd-background-color: var(--contrast);\n --code-kbd-color: var(--contrast-inverse);\n --code-tag-color: #{hsl(330, 30%, 50%)};\n --code-property-color: #{hsl(185, 30%, 50%)};\n --code-value-color: #{hsl(40, 10%, 50%)};\n --code-comment-color: #{mix($grey-700, $grey-600)};\n\n // Accordion ()\n --accordion-border-color: var(--muted-border-color);\n --accordion-active-summary-color: var(--primary);\n --accordion-close-summary-color: var(--color);\n --accordion-open-summary-color: var(--muted-color);\n\n // Card ()\n $box-shadow-elevation: 1rem;\n $box-shadow-blur-strengh: 6rem;\n $box-shadow-opacity: 0.06;\n --card-background-color: #{mix($black, $grey-900, 25%)};\n --card-border-color: var(--card-background-color);\n --card-box-shadow:\n #{($box-shadow-elevation * 0.5 * 0.029)} #{($box-shadow-elevation * 0.029)} #{($box-shadow-blur-strengh * 0.029)} #{rgba($black, ($box-shadow-opacity * 0.283))},\n #{($box-shadow-elevation * 0.5 * 0.067)} #{($box-shadow-elevation * 0.067)} #{($box-shadow-blur-strengh * 0.067)} #{rgba($black, ($box-shadow-opacity * 0.4))},\n #{($box-shadow-elevation * 0.5 * 0.125)} #{($box-shadow-elevation * 0.125)} #{($box-shadow-blur-strengh * 0.125)} #{rgba($black, ($box-shadow-opacity * 0.5))},\n #{($box-shadow-elevation * 0.5 * 0.225)} #{($box-shadow-elevation * 0.225)} #{($box-shadow-blur-strengh * 0.225)} #{rgba($black, ($box-shadow-opacity * 0.6))},\n #{($box-shadow-elevation * 0.5 * 0.417)} #{($box-shadow-elevation * 0.417)} #{($box-shadow-blur-strengh * 0.417)} #{rgba($black, ($box-shadow-opacity * 0.717))},\n #{($box-shadow-elevation * 0.5)} #{$box-shadow-elevation} #{$box-shadow-blur-strengh} #{rgba($black, $box-shadow-opacity)},\n 0 0 0 0.0625rem #{rgba($black, ($box-shadow-opacity * 0.25) )};\n --card-sectionning-background-color: #{mix($black, $grey-900, 12.5%)};\n\n // Dropdown ()\n --dropdown-background-color: #{$grey-900};\n --dropdown-border-color: #{mix($grey-900, $grey-800)};\n --dropdown-box-shadow: var(--card-box-shadow);\n --dropdown-color: var(--color);\n --dropdown-hover-background-color: #{rgba(mix($grey-900, $grey-800), 0.75)};\n\n // Modal ()\n --modal-overlay-background-color: #{rgba(mix($grey-900, $grey-800), 0.8)};\n\n // Progress\n --progress-background-color: #{mix($grey-900, $grey-800)};\n --progress-color: var(--primary);\n\n // Loading ([aria-busy=true])\n --loading-spinner-opacity: 0.5;\n\n // Tooltip ([data-tooltip])\n --tooltip-background-color: var(--contrast);\n --tooltip-color: var(--contrast-inverse);\n\n // Icons\n --icon-checkbox: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-300)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron-button: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-chevron-button-inverse: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($black)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-close: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-500)}' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E\");\n --icon-date: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-300)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E\");\n --icon-invalid: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($red-900)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E\");\n --icon-minus: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($white)}' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E\");\n --icon-search: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-300)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E\");\n --icon-time: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($grey-300)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E\");\n --icon-valid: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{to-rgb($green-800)}' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E\");\n \n // Document\n color-scheme: dark;\n}\n","/**\n * Document\n * Content-box & Responsive typography\n */\n\n// Reboot based on :\n// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css\n// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n// ––––––––––––––––––––\n\n// 1. Add border box sizing in all browsers (opinionated)\n// 2. Backgrounds do not repeat by default (opinionated)\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n background-repeat: no-repeat; // 2\n}\n\n// 1. Add text decoration inheritance in all browsers (opinionated)\n// 2. Add vertical alignment inheritance in all browsers (opinionated)\n::before,\n::after {\n text-decoration: inherit; // 1\n vertical-align: inherit; // 2\n}\n\n// 1. Use the default cursor in all browsers (opinionated)\n// 2. Change the line height in all browsers (opinionated)\n// 3. Breaks words to prevent overflow in all browsers (opinionated)\n// 4. Use a 4-space tab width in all browsers (opinionated)\n// 5. Remove the grey highlight on links in iOS (opinionated)\n// 6. Prevent adjustments of font size after orientation changes in iOS\n:where(:root) {\n -webkit-tap-highlight-color: transparent; // 5\n -webkit-text-size-adjust: 100%; // 6\n text-size-adjust: 100%; // 6\n background-color: var(--background-color);\n color: var(--color);\n font-weight: var(--font-weight);\n font-size: var(--font-size);\n line-height: var(--line-height); // 2\n font-family: var(--font-family);\n text-rendering: optimizeLegibility;\n overflow-wrap: break-word; // 3\n cursor: default; // 1\n tab-size: 4; // 4\n}\n","/**\n * Sectioning\n * Container and responsive spacings for header, main, footer\n */\n\n// Reboot based on :\n// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css\n// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n// ––––––––––––––––––––\n\n// Render the `main` element consistently in IE\nmain {\n display: block;\n}\n\n// Pico\n// ––––––––––––––––––––\n\n// 1. Remove the margin in all browsers (opinionated)\n#{$semantic-root-element} {\n width: 100%;\n margin: 0; // 1\n\n > header,\n > main,\n > footer {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n\n // Semantic container\n @if $enable-semantic-container {\n padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);\n\n // Centered viewport\n @if $enable-viewport {\n @if map-get($breakpoints, \"sm\") and $enable-viewport {\n @media (min-width: map-get($breakpoints, \"sm\")) {\n max-width: map-get($viewports, \"sm\");\n padding-right: 0;\n padding-left: 0;\n }\n }\n\n @if map-get($breakpoints, \"md\") and $enable-viewport {\n @media (min-width: map-get($breakpoints, \"md\")) {\n max-width: map-get($viewports, \"md\");\n }\n }\n\n @if map-get($breakpoints, \"lg\") and $enable-viewport {\n @media (min-width: map-get($breakpoints, \"lg\")) {\n max-width: map-get($viewports, \"lg\");\n }\n }\n\n @if map-get($breakpoints, \"xl\") and $enable-viewport {\n @media (min-width: map-get($breakpoints, \"xl\")) {\n max-width: map-get($viewports, \"xl\");\n }\n }\n }\n }\n\n // Semantic container\n @else {\n padding: var(--block-spacing-vertical) 0;\n }\n }\n}\n","@if ($enable-class-container and $enable-classes) {\n /**\n * Container\n */\n\n .container,\n .container-fluid {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: var(--spacing);\n padding-left: var(--spacing);\n }\n\n .container {\n @if map-get($breakpoints, \"sm\") {\n @media (min-width: map-get($breakpoints, \"sm\")) {\n max-width: map-get($viewports, \"sm\");\n padding-right: 0;\n padding-left: 0;\n }\n }\n\n @if map-get($breakpoints, \"md\") {\n @media (min-width: map-get($breakpoints, \"md\")) {\n max-width: map-get($viewports, \"md\");\n }\n }\n\n @if map-get($breakpoints, \"lg\") {\n @media (min-width: map-get($breakpoints, \"lg\")) {\n max-width: map-get($viewports, \"lg\");\n }\n }\n\n @if map-get($breakpoints, \"xl\") {\n @media (min-width: map-get($breakpoints, \"xl\")) {\n max-width: map-get($viewports, \"xl\");\n }\n }\n }\n}\n","/**\n * Section\n * Responsive spacings for section\n */\n\nsection {\n margin-bottom: var(--block-spacing-vertical);\n}\n","@if ($enable-classes and $enable-grid) {\n /**\n * Grid\n * Minimal grid system with auto-layout columns\n */\n\n .grid {\n grid-column-gap: var(--grid-spacing-horizontal);\n grid-row-gap: var(--grid-spacing-vertical);\n display: grid;\n grid-template-columns: 1fr;\n margin: 0;\n\n @if map-get($breakpoints, \"lg\") {\n @media (min-width: map-get($breakpoints, \"lg\")) {\n grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));\n }\n }\n\n & > * {\n min-width: 0; // HACK for childs in overflow\n }\n }\n}\n","/**\n * Horizontal scroller ()\n */\n\n// Wrapper to make any content responsive across all viewports\nfigure {\n display: block;\n margin: 0;\n padding: 0;\n overflow-x: auto;\n\n figcaption {\n padding: calc(var(--spacing) * 0.5) 0;\n color: var(--muted-color);\n }\n}\n","/**\n * Typography\n */\n\n// Reboot based on :\n// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css\n// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n// ––––––––––––––––––––\n\n// Add the correct font weight in Chrome, Edge, and Safari\nb,\nstrong {\n font-weight: bolder;\n}\n\n// Prevent `sub` and `sup` elements from affecting the line height in all browsers\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\n\n// Pico\n// ––––––––––––––––––––\n\naddress,\nblockquote,\ndl,\nfigure,\nform,\nol,\np,\npre,\ntable,\nul {\n margin-top: 0;\n margin-bottom: var(--typography-spacing-vertical);\n color: var(--color);\n font-style: normal;\n font-weight: var(--font-weight);\n font-size: var(--font-size);\n}\n\n// Links\n// 1. Remove the gray background on active links in IE 10\na,\n[role=\"link\"] {\n --color: var(--primary);\n --background-color: transparent;\n outline: none;\n background-color: var(--background-color); // 1\n color: var(--color);\n text-decoration: var(--text-decoration);\n\n @if $enable-transitions {\n transition: background-color var(--transition), color var(--transition),\n text-decoration var(--transition), box-shadow var(--transition);\n }\n\n &:is([aria-current], :hover, :active, :focus) {\n --color: var(--primary-hover);\n --text-decoration: underline;\n }\n\n &:focus {\n --background-color: var(--primary-focus);\n }\n\n @if $enable-classes {\n // Secondary\n &.secondary {\n --color: var(--secondary);\n\n &:is([aria-current], :hover, :active, :focus) {\n --color: var(--secondary-hover);\n }\n\n &:focus {\n --background-color: var(--secondary-focus);\n }\n }\n\n // Contrast\n &.contrast {\n --color: var(--contrast);\n\n &:is([aria-current], :hover, :active, :focus) {\n --color: var(--contrast-hover);\n }\n\n &:focus {\n --background-color: var(--contrast-focus);\n }\n }\n }\n}\n\n// Headings\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: var(--typography-spacing-vertical);\n color: var(--color);\n font-weight: var(--font-weight);\n font-size: var(--font-size);\n font-family: var(--font-family);\n}\n\nh1 {\n --color: var(--h1-color);\n}\nh2 {\n --color: var(--h2-color);\n}\nh3 {\n --color: var(--h3-color);\n}\nh4 {\n --color: var(--h4-color);\n}\nh5 {\n --color: var(--h5-color);\n}\nh6 {\n --color: var(--h6-color);\n}\n\n// Margin-top for headings after a typography block\n:where(address, blockquote, dl, figure, form, ol, p, pre, table, ul) {\n ~ :is(h1, h2, h3, h4, h5, h6) {\n margin-top: var(--typography-spacing-vertical);\n }\n}\n\n// Heading group\n@if $enable-classes == false {\n hgroup {\n margin-bottom: var(--typography-spacing-vertical);\n\n > * {\n margin-bottom: 0;\n }\n\n > *:last-child {\n --color: var(--muted-color);\n --font-weight: unset;\n font-size: 1rem;\n font-family: unset;\n }\n }\n}\n\n@if $enable-classes {\n hgroup,\n .headings {\n margin-bottom: var(--typography-spacing-vertical);\n\n > * {\n margin-bottom: 0;\n }\n\n > *:last-child {\n --color: var(--muted-color);\n --font-weight: unset;\n font-size: 1rem;\n font-family: unset;\n }\n }\n}\n\n// Paragraphs\np {\n margin-bottom: var(--typography-spacing-vertical);\n}\n\n// Small\nsmall {\n font-size: var(--font-size);\n}\n\n// Lists\n:where(dl, ol, ul) {\n padding-right: 0;\n padding-left: var(--spacing);\n padding-inline-start: var(--spacing);\n padding-inline-end: 0;\n\n li {\n margin-bottom: calc(var(--typography-spacing-vertical) * 0.25);\n }\n}\n\n// Margin-top for nested lists\n// 1. Remove the margin on nested lists in Chrome, Edge, IE, and Safari\n:where(dl, ol, ul) {\n :is(dl, ol, ul) {\n margin: 0; // 1\n margin-top: calc(var(--typography-spacing-vertical) * 0.25);\n }\n}\n\nul li {\n list-style: square;\n}\n\n// Highlighted text\nmark {\n padding: 0.125rem 0.25rem;\n background-color: var(--mark-background-color);\n color: var(--mark-color);\n vertical-align: baseline;\n}\n\n// Blockquote\nblockquote {\n display: block;\n margin: var(--typography-spacing-vertical) 0;\n padding: var(--spacing);\n border-right: none;\n border-left: 0.25rem solid var(--blockquote-border-color);\n border-inline-start: 0.25rem solid var(--blockquote-border-color);\n border-inline-end: none;\n\n footer {\n margin-top: calc(var(--typography-spacing-vertical) * 0.5);\n color: var(--blockquote-footer-color);\n }\n}\n\n// Abbreviations\n// 1. Remove underline decoration in Chrome, Edge, IE, Opera, and Safari\nabbr[title] {\n border-bottom: 1px dotted;\n text-decoration: none; // 1\n cursor: help;\n}\n\n// Ins\nins {\n color: var(--ins-color);\n text-decoration: none;\n}\n\n// del\ndel {\n color: var(--del-color);\n}\n\n// selection\n::selection {\n background-color: var(--primary-focus);\n}\n","/**\n * Embedded content\n */\n\n// Reboot based on :\n// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css\n// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n// ––––––––––––––––––––\n\n// Change the alignment on media elements in all browsers (opinionated)\n:where(audio, canvas, iframe, img, svg, video) {\n vertical-align: middle;\n}\n\n// Add the correct display in IE 9-\naudio,\nvideo {\n display: inline-block;\n}\n\n// Add the correct display in iOS 4-7\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n// Remove the border on iframes in all browsers (opinionated)\n:where(iframe) {\n border-style: none;\n}\n\n// 1. Remove the border on images inside links in IE 10.\n// 2. Responsive by default\nimg {\n max-width: 100%; // 2\n height: auto; // 2\n border-style: none; // 1\n}\n\n// Change the fill color to match the text color in all browsers (opinionated)\n:where(svg:not([fill])) {\n fill: currentColor;\n}\n\n// Hide the overflow in IE\nsvg:not(:root) {\n overflow: hidden;\n}\n","/**\n * Button\n */\n\n// Reboot based on :\n// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css\n// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n// ––––––––––––––––––––\n\n// 1. Change the font styles in all browsers\n// 2. Remove the margin on controls in Safari\n// 3. Show the overflow in Edge\nbutton {\n margin: 0; // 2\n overflow: visible; // 3\n font-family: inherit; // 1\n text-transform: none; // 1\n}\n\n// Correct the inability to style buttons in iOS and Safari\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n// Pico\n// ––––––––––––––––––––\n\nbutton {\n display: block;\n width: 100%;\n margin-bottom: var(--spacing);\n}\n\n[role=\"button\"] {\n display: inline-block;\n text-decoration: none;\n}\n\nbutton,\ninput[type=\"submit\"],\ninput[type=\"button\"],\ninput[type=\"reset\"],\n[role=\"button\"] {\n --background-color: var(--primary);\n --border-color: var(--primary);\n --color: var(--primary-inverse);\n --box-shadow: var(--button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));\n padding: var(--form-element-spacing-vertical)\n var(--form-element-spacing-horizontal);\n border: var(--border-width) solid var(--border-color);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--background-color);\n box-shadow: var(--box-shadow);\n color: var(--color);\n font-weight: var(--font-weight);\n font-size: 1rem;\n line-height: var(--line-height);\n text-align: center;\n cursor: pointer;\n\n @if $enable-transitions {\n transition: background-color var(--transition),\n border-color var(--transition), color var(--transition),\n box-shadow var(--transition);\n }\n\n &:is([aria-current], :hover, :active, :focus) {\n --background-color: var(--primary-hover);\n --border-color: var(--primary-hover);\n --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));\n --color: var(--primary-inverse);\n }\n\n &:focus {\n --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),\n 0 0 0 var(--outline-width) var(--primary-focus);\n }\n}\n\n// .secondary, .contrast & .outline\n@if $enable-classes {\n\n // Secondary\n :is(button, input[type=\"submit\"], input[type=\"button\"], [role=\"button\"]).secondary,\n input[type=\"reset\"] {\n --background-color: var(--secondary);\n --border-color: var(--secondary);\n --color: var(--secondary-inverse);\n cursor: pointer;\n\n &:is([aria-current], :hover, :active, :focus) {\n --background-color: var(--secondary-hover);\n --border-color: var(--secondary-hover);\n --color: var(--secondary-inverse);\n }\n\n &:focus {\n --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),\n 0 0 0 var(--outline-width) var(--secondary-focus);\n }\n }\n\n // Contrast\n :is(button, input[type=\"submit\"], input[type=\"button\"], [role=\"button\"]).contrast {\n --background-color: var(--contrast);\n --border-color: var(--contrast);\n --color: var(--contrast-inverse);\n\n &:is([aria-current], :hover, :active, :focus) {\n --background-color: var(--contrast-hover);\n --border-color: var(--contrast-hover);\n --color: var(--contrast-inverse);\n }\n\n &:focus {\n --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),\n 0 0 0 var(--outline-width) var(--contrast-focus);\n }\n }\n\n // Outline (primary)\n :is(button, input[type=\"submit\"], input[type=\"button\"], [role=\"button\"]).outline,\n input[type=\"reset\"].outline {\n --background-color: transparent;\n --color: var(--primary);\n\n &:is([aria-current], :hover, :active, :focus) {\n --background-color: transparent;\n --color: var(--primary-hover);\n }\n }\n\n // Outline (secondary)\n :is(button, input[type=\"submit\"], input[type=\"button\"], [role=\"button\"]).outline.secondary,\n input[type=\"reset\"].outline {\n --color: var(--secondary);\n\n &:is([aria-current], :hover, :active, :focus) {\n --color: var(--secondary-hover);\n }\n }\n\n // Outline (contrast)\n :is(button, input[type=\"submit\"], input[type=\"button\"], [role=\"button\"]).outline.contrast {\n --color: var(--contrast);\n\n &:is([aria-current], :hover, :active, :focus) {\n --color: var(--contrast-hover);\n }\n }\n} \n@else {\n // Secondary button without .class\n input[type=\"reset\"] {\n --background-color: var(--secondary);\n --border-color: var(--secondary);\n --color: var(--secondary-inverse);\n cursor: pointer;\n\n &:is([aria-current], :hover, :active, :focus) {\n --background-color: var(--secondary-hover);\n --border-color: var(--secondary-hover);\n }\n\n &:focus {\n --box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),\n 0 0 0 var(--outline-width) var(--secondary-focus);\n }\n }\n}\n\n// Button [disabled]\n// Links without href are disabled by default\n:where(button, [type=\"submit\"], [type=\"button\"], [type=\"reset\"], [role=\"button\"])[disabled],\n:where(fieldset[disabled]) :is(button, [type=\"submit\"], [type=\"button\"], [type=\"reset\"], [role=\"button\"]),\na[role=\"button\"]:not([href]) {\n opacity: 0.5;\n pointer-events: none;\n}\n","/**\n * Form elements\n */\n\n// Reboot based on :\n// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css\n// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n// ––––––––––––––––––––\n\n// 1. Change the font styles in all browsers\n// 2. Remove the margin in Firefox and Safari\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0; // 2\n font-size: 1rem; // 1\n line-height: var(--line-height); // 1\n font-family: inherit; // 1\n letter-spacing: inherit; // 2\n}\n\n// Show the overflow in IE.\ninput {\n overflow: visible;\n}\n\n// Remove the inheritance of text transform in Edge, Firefox, and IE\nselect {\n text-transform: none;\n}\n\n// 1. Correct the text wrapping in Edge and IE\n// 2. Correct the color inheritance from `fieldset` elements in IE\n// 3. Remove the padding so developers are not caught out when they zero out\n// `fieldset` elements in all browsers\nlegend {\n max-width: 100%; // 1\n padding: 0; // 3\n color: inherit; // 2\n white-space: normal; // 1\n}\n\n// 1. Remove the default vertical scrollbar in IE\ntextarea {\n overflow: auto; // 1\n}\n\n// Remove the padding in IE 10\n[type=\"checkbox\"],\n[type=\"radio\"] {\n padding: 0;\n}\n\n// Correct the cursor style of increment and decrement buttons in Safari\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n// 1. Correct the odd appearance in Chrome and Safari\n// 2. Correct the outline style in Safari\n[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n outline-offset: -2px; // 2\n}\n\n// Remove the inner padding in Chrome and Safari on macOS\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n// 1. Correct the inability to style clickable types in iOS and Safari\n// 2. Change font properties to `inherit` in Safari\n::-webkit-file-upload-button {\n -webkit-appearance: button; // 1\n font: inherit; // 2\n}\n\n// Remove the inner border and padding of focus outlines in Firefox\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\n// Remove the focus outline in Firefox\n:-moz-focusring {\n outline: none;\n}\n\n// Remove the additional :invalid styles in Firefox\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n// Change the inconsistent appearance in IE (opinionated)\n::-ms-expand {\n display: none;\n}\n\n// Remove the border and padding in all browsers (opinionated)\n[type=\"file\"],\n[type=\"range\"] {\n padding: 0;\n border-width: 0;\n}\n\n// Pico\n// ––––––––––––––––––––\n\n// Force height for alternatives input types\ninput:not([type=\"checkbox\"], [type=\"radio\"], [type=\"range\"]) {\n height: calc(\n (1rem * var(--line-height)) + (var(--form-element-spacing-vertical) * 2) +\n (var(--border-width) * 2)\n );\n}\n\n// Fieldset\nfieldset {\n margin: 0;\n margin-bottom: var(--spacing);\n padding: 0;\n border: 0;\n}\n\n// Label & legend\nlabel,\nfieldset legend {\n display: block;\n margin-bottom: calc(var(--spacing) * 0.25);\n font-weight: var(--form-label-font-weight, var(--font-weight));\n}\n\n// Blocks, 100%\ninput:not([type=\"checkbox\"], [type=\"radio\"]),\nselect,\ntextarea {\n width: 100%;\n}\n\n// Reset appearance (Not Checkboxes, Radios, Range and File)\ninput:not([type=\"checkbox\"], [type=\"radio\"], [type=\"range\"], [type=\"file\"]),\nselect,\ntextarea {\n appearance: none;\n padding: var(--form-element-spacing-vertical)\n var(--form-element-spacing-horizontal);\n}\n\n// Commons styles\ninput,\nselect,\ntextarea {\n --background-color: var(--form-element-background-color);\n --border-color: var(--form-element-border-color);\n --color: var(--form-element-color);\n --box-shadow: none;\n border: var(--border-width) solid var(--border-color);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--background-color);\n box-shadow: var(--box-shadow);\n color: var(--color);\n font-weight: var(--font-weight);\n\n @if $enable-transitions {\n transition: background-color var(--transition),\n border-color var(--transition), color var(--transition),\n box-shadow var(--transition);\n }\n}\n\n// Active & Focus\ninput:not([type=\"submit\"], [type=\"button\"], [type=\"reset\"], [type=\"checkbox\"], [type=\"radio\"], [readonly]),\n:where(select, textarea) {\n &:is(:active, :focus) {\n --background-color: var(--form-element-active-background-color);\n }\n}\n\n// Active & Focus\ninput:not([type=\"submit\"], [type=\"button\"], [type=\"reset\"], [role=\"switch\"], [readonly]),\n:where(select, textarea) {\n &:is(:active, :focus) {\n --border-color: var(--form-element-active-border-color);\n }\n}\n\n// Focus\ninput:not([type=\"submit\"], [type=\"button\"], [type=\"reset\"], [type=\"range\"], [type=\"file\"], [readonly]),\nselect,\ntextarea {\n &:focus {\n --box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color);\n }\n}\n\n// Disabled\ninput:not([type=\"submit\"], [type=\"button\"], [type=\"reset\"])[disabled],\nselect[disabled],\ntextarea[disabled],\n:where(fieldset[disabled]) :is(input:not([type=\"submit\"], [type=\"button\"], [type=\"reset\"]), select, textarea) {\n --background-color: var(--form-element-disabled-background-color);\n --border-color: var(--form-element-disabled-border-color);\n opacity: var(--form-element-disabled-opacity);\n pointer-events: none;\n}\n\n// Aria-invalid\n:where(input, select, textarea) {\n &:not([type=\"checkbox\"], [type=\"radio\"], [type=\"date\"], [type=\"datetime-local\"], [type=\"month\"], [type=\"time\"], [type=\"week\"]) {\n &[aria-invalid] {\n @if $enable-important {\n padding-right: calc(\n var(--form-element-spacing-horizontal) + 1.5rem\n ) !important;\n padding-left: var(--form-element-spacing-horizontal);\n padding-inline-start: var(--form-element-spacing-horizontal) !important;\n padding-inline-end: calc(\n var(--form-element-spacing-horizontal) + 1.5rem\n ) !important;\n }\n @else {\n padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem);\n padding-left: var(--form-element-spacing-horizontal);\n padding-inline-start: var(--form-element-spacing-horizontal);\n padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);\n }\n background-position: center right 0.75rem;\n background-size: 1rem auto;\n background-repeat: no-repeat;\n }\n\n &[aria-invalid=\"false\"] {\n background-image: var(--icon-valid);\n }\n\n &[aria-invalid=\"true\"] {\n background-image: var(--icon-invalid);\n }\n }\n\n &[aria-invalid=\"false\"] {\n --border-color: var(--form-element-valid-border-color);\n\n &:is(:active, :focus) {\n @if $enable-important {\n --border-color: var(--form-element-valid-active-border-color) !important;\n --box-shadow: 0 0 0 var(--outline-width) var(--form-element-valid-focus-color) !important;\n }\n @else {\n --border-color: var(--form-element-valid-active-border-color);\n --box-shadow: 0 0 0 var(--outline-width) var(--form-element-valid-focus-color);\n }\n }\n }\n\n &[aria-invalid=\"true\"] {\n --border-color: var(--form-element-invalid-border-color);\n\n &:is(:active, :focus) {\n @if $enable-important {\n --border-color: var(--form-element-invalid-active-border-color) !important;\n --box-shadow: 0 0 0 var(--outline-width) var(--form-element-invalid-focus-color) !important;\n }\n @else {\n --border-color: var(--form-element-invalid-active-border-color);\n --box-shadow: 0 0 0 var(--outline-width) var(--form-element-invalid-focus-color);\n }\n }\n }\n}\n\n[dir=\"rtl\"] {\n :where(input, select, textarea) {\n &:not([type=\"checkbox\"], [type=\"radio\"]) {\n &:is([aria-invalid], [aria-invalid=\"true\"], [aria-invalid=\"false\"] ){\n background-position: center left 0.75rem;\n }\n }\n }\n}\n\n// Placeholder\ninput::placeholder,\ninput::-webkit-input-placeholder,\ntextarea::placeholder,\ntextarea::-webkit-input-placeholder,\nselect:invalid {\n color: var(--form-element-placeholder-color);\n opacity: 1;\n}\n\n// Margin bottom (Not Checkboxes and Radios)\ninput:not([type=\"checkbox\"], [type=\"radio\"]),\nselect,\ntextarea {\n margin-bottom: var(--spacing);\n}\n\n// Select\nselect {\n // Unstyle the caret on ``s in IE10+.\n &::-ms-expand {\n border: 0;\n background-color: transparent;\n }\n\n &:not([multiple], [size]) {\n padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem);\n padding-left: var(--form-element-spacing-horizontal);\n padding-inline-start: var(--form-element-spacing-horizontal);\n padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);\n background-image: var(--icon-chevron);\n background-position: center right 0.75rem;\n background-size: 1rem auto;\n background-repeat: no-repeat;\n }\n}\n\n[dir=\"rtl\"] {\n select {\n &:not([multiple], [size]) {\n background-position: center left 0.75rem;\n }\n }\n}\n\n// Helper\n$inputs: \"input, select, textarea\";\n\n@if ($enable-classes and $enable-grid) {\n $inputs: $inputs + \", .grid\";\n}\n\n:where(#{$inputs}) {\n + small {\n display: block;\n width: 100%;\n margin-top: calc(var(--spacing) * -0.75);\n margin-bottom: var(--spacing);\n color: var(--muted-color);\n }\n}\n\n// Styles for Input inside a label\nlabel {\n > :where(input, select, textarea) {\n margin-top: calc(var(--spacing) * 0.25);\n }\n}\n","/**\n * Form elements\n * Checkboxes & Radios\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: 1.25em;\n height: 1.25em;\n margin-top: -0.125em;\n margin-right: 0.375em;\n margin-left: 0;\n margin-inline-start: 0;\n margin-inline-end: 0.375em;\n border-width: var(--border-width);\n font-size: inherit;\n vertical-align: middle;\n cursor: pointer;\n\n &::-ms-check {\n display: none; // unstyle IE checkboxes\n }\n\n &:checked,\n &:checked:active,\n &:checked:focus {\n --background-color: var(--primary);\n --border-color: var(--primary);\n background-image: var(--icon-checkbox);\n background-position: center;\n background-size: 0.75em auto;\n background-repeat: no-repeat;\n }\n\n & ~ label {\n display: inline-block;\n margin-right: 0.375em;\n margin-bottom: 0;\n cursor: pointer;\n }\n}\n\n// Checkboxes\n[type=\"checkbox\"] {\n &:indeterminate {\n --background-color: var(--primary);\n --border-color: var(--primary);\n background-image: var(--icon-minus);\n background-position: center;\n background-size: 0.75em auto;\n background-repeat: no-repeat;\n }\n}\n\n// Radios\n[type=\"radio\"] {\n border-radius: 50%;\n\n &:checked,\n &:checked:active,\n &:checked:focus {\n --background-color: var(--primary-inverse);\n border-width: 0.35em;\n background-image: none;\n }\n}\n\n// Switchs\n[type=\"checkbox\"][role=\"switch\"] {\n --background-color: var(--switch-background-color);\n --border-color: var(--switch-background-color);\n --color: var(--switch-color);\n\n // Config\n $switch-height: 1.25em;\n $switch-width: 2.25em;\n $switch-transition: 0.1s ease-in-out;\n\n // Styles\n width: $switch-width;\n height: $switch-height;\n border: var(--border-width) solid var(--border-color);\n border-radius: $switch-height;\n background-color: var(--background-color);\n line-height: $switch-height;\n\n &:focus {\n --background-color: var(--switch-background-color);\n --border-color: var(--switch-background-color);\n }\n\n &:checked {\n --background-color: var(--switch-checked-background-color);\n --border-color: var(--switch-checked-background-color);\n }\n\n &:before {\n display: block;\n width: calc(#{$switch-height} - (var(--border-width) * 2));\n height: 100%;\n border-radius: 50%;\n background-color: var(--color);\n content: \"\";\n\n @if $enable-transitions {\n transition: margin $switch-transition;\n }\n }\n\n &:checked {\n background-image: none;\n\n &::before {\n margin-left: calc(#{$switch-width * 0.5} - var(--border-width));\n margin-inline-start: calc(#{$switch-width * 0.5} - var(--border-width));\n }\n }\n}\n\n// Aria-invalid\n[type=\"checkbox\"],\n[type=\"checkbox\"]:checked,\n[type=\"radio\"],\n[type=\"radio\"]:checked,\n[type=\"checkbox\"][role=\"switch\"],\n[type=\"checkbox\"][role=\"switch\"]:checked {\n \n &[aria-invalid=\"false\"] {\n --border-color: var(--form-element-valid-border-color);\n }\n\n &[aria-invalid=\"true\"] {\n --border-color: var(--form-element-invalid-border-color);\n }\n}","/**\n * Form elements\n * Alternatives input types (Not Checkboxes & Radios)\n */\n\n// Color\n[type=\"color\"] {\n // Wrapper\n @mixin color-wrapper {\n padding: 0;\n }\n\n &::-webkit-color-swatch-wrapper {\n @include color-wrapper;\n }\n\n &::-moz-focus-inner {\n @include color-wrapper;\n }\n\n // Swatch\n @mixin color-swatch {\n border: 0;\n border-radius: calc(var(--border-radius) * 0.5);\n }\n\n &::-webkit-color-swatch {\n @include color-swatch;\n }\n\n &::-moz-color-swatch {\n @include color-swatch;\n }\n}\n\n// Date & Time\n// :not() are needed to add Specificity and avoid !important on padding\ninput:not([type=\"checkbox\"], [type=\"radio\"], [type=\"range\"], [type=\"file\"]) {\n &:is([type=\"date\"], [type=\"datetime-local\"], [type=\"month\"], [type=\"time\"], [type=\"week\"]) {\n --icon-position: 0.75rem;\n --icon-width: 1rem;\n padding-right: calc(var(--icon-width) + var(--icon-position));\n background-image: var(--icon-date);\n background-position: center right var(--icon-position);\n background-size: var(--icon-width) auto;\n background-repeat: no-repeat;\n }\n\n // Time\n &[type=\"time\"] {\n background-image: var(--icon-time);\n }\n}\n\n// Calendar picker\n[type=\"date\"],\n[type=\"datetime-local\"],\n[type=\"month\"],\n[type=\"time\"],\n[type=\"week\"] {\n &::-webkit-calendar-picker-indicator {\n width: var(--icon-width);\n margin-right: calc(var(--icon-width) * -1);\n margin-left: var(--icon-position);\n opacity: 0;\n }\n}\n\n[dir=\"rtl\"]\n :is([type=\"date\"], [type=\"datetime-local\"], [type=\"month\"], [type=\"time\"], [type=\"week\"]) {\n text-align: right;\n}\n\n// File\n[type=\"file\"] {\n --color: var(--muted-color);\n padding: calc(var(--form-element-spacing-vertical) * 0.5) 0;\n border: 0;\n border-radius: 0;\n background: none;\n\n @mixin file-selector-button {\n --background-color: var(--secondary);\n --border-color: var(--secondary);\n --color: var(--secondary-inverse);\n margin-right: calc(var(--spacing) / 2);\n margin-left: 0;\n margin-inline-start: 0;\n margin-inline-end: calc(var(--spacing) / 2);\n padding: calc(var(--form-element-spacing-vertical) * 0.5)\n calc(var(--form-element-spacing-horizontal) * 0.5);\n border: var(--border-width) solid var(--border-color);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--background-color);\n box-shadow: var(--box-shadow);\n color: var(--color);\n font-weight: var(--font-weight);\n font-size: 1rem;\n line-height: var(--line-height);\n text-align: center;\n cursor: pointer;\n\n @if $enable-transitions {\n transition: background-color var(--transition),\n border-color var(--transition), color var(--transition),\n box-shadow var(--transition);\n }\n\n &:is(:hover, :active, :focus) {\n --background-color: var(--secondary-hover);\n --border-color: var(--secondary-hover);\n }\n }\n\n &::file-selector-button {\n @include file-selector-button;\n }\n\n &::-webkit-file-upload-button {\n @include file-selector-button;\n }\n\n &::-ms-browse {\n @include file-selector-button;\n }\n}\n\n// Range\n[type=\"range\"] {\n // Config\n $height-track: 0.25rem;\n $height-thumb: 1.25rem;\n $border-thumb: 2px;\n\n // Styles\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: 100%;\n height: $height-thumb;\n background: none;\n\n // Slider Track\n @mixin slider-track {\n width: 100%;\n height: $height-track;\n border-radius: var(--border-radius);\n background-color: var(--range-border-color);\n\n @if $enable-transitions {\n transition: background-color var(--transition),\n box-shadow var(--transition);\n }\n }\n\n &::-webkit-slider-runnable-track {\n @include slider-track;\n }\n\n &::-moz-range-track {\n @include slider-track;\n }\n\n &::-ms-track {\n @include slider-track;\n }\n\n // Slider Thumb\n @mixin slider-thumb {\n -webkit-appearance: none;\n width: $height-thumb;\n height: $height-thumb;\n margin-top: #{(-($height-thumb * 0.5) + ($height-track * 0.5))};\n border: $border-thumb solid var(--range-thumb-border-color);\n border-radius: 50%;\n background-color: var(--range-thumb-color);\n cursor: pointer;\n\n @if $enable-transitions {\n transition: background-color var(--transition),\n transform var(--transition);\n }\n }\n &::-webkit-slider-thumb {\n @include slider-thumb;\n }\n\n &::-moz-range-thumb {\n @include slider-thumb;\n }\n\n &::-ms-thumb {\n @include slider-thumb;\n }\n\n &:hover,\n &:focus {\n --range-border-color: var(--range-active-border-color);\n --range-thumb-color: var(--range-thumb-hover-color);\n }\n\n &:active {\n --range-thumb-color: var(--range-thumb-active-color);\n\n // Slider Thumb\n &::-webkit-slider-thumb {\n transform: scale(1.25);\n }\n\n &::-moz-range-thumb {\n transform: scale(1.25);\n }\n\n &::-ms-thumb {\n transform: scale(1.25);\n }\n }\n}\n\n// Search\n// :not() are needed to add Specificity and avoid !important on padding\ninput:not([type=\"checkbox\"], [type=\"radio\"], [type=\"range\"], [type=\"file\"]) {\n &[type=\"search\"] {\n padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem);\n border-radius: 5rem;\n background-image: var(--icon-search);\n background-position: center left 1.125rem;\n background-size: 1rem auto;\n background-repeat: no-repeat;\n \n &[aria-invalid] {\n @if $enable-important {\n padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem) !important;\n } \n @else {\n padding-inline-start: calc(var(--form-element-spacing-horizontal) + 1.75rem);\n }\n background-position: center left 1.125rem, center right 0.75rem;\n }\n\n &[aria-invalid=\"false\"] {\n background-image: var(--icon-search), var(--icon-valid);\n }\n\n &[aria-invalid=\"true\"] {\n background-image: var(--icon-search), var(--icon-invalid);\n }\n }\n}\n\n// Cancel button\n[type=\"search\"] {\n &::-webkit-search-cancel-button {\n -webkit-appearance: none;\n display: none;\n }\n}\n\n[dir=\"rtl\"] {\n :where(input) {\n &:not([type=\"checkbox\"], [type=\"radio\"], [type=\"range\"], [type=\"file\"]) {\n &[type=\"search\"] {\n background-position: center right 1.125rem;\n \n &[aria-invalid] {\n background-position: center right 1.125rem, center left 0.75rem;\n }\n }\n }\n }\n}\n","/**\n * Table\n */\n\n// Reboot based on :\n// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css\n// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n// ––––––––––––––––––––\n\n// 1. Collapse border spacing in all browsers (opinionated)\n// 2. Remove text indentation from table contents in Chrome, Edge, and Safari\n:where(table) {\n width: 100%;\n border-collapse: collapse; // 1\n border-spacing: 0;\n text-indent: 0; // 2\n}\n\n// Pico\n// ––––––––––––––––––––\n\n// Cells\nth,\ntd {\n padding: calc(var(--spacing) / 2) var(--spacing);\n border-bottom: var(--border-width) solid var(--table-border-color);\n color: var(--color);\n font-weight: var(--font-weight);\n font-size: var(--font-size);\n text-align: left;\n text-align: start;\n}\n\n// Footer\ntfoot {\n th,\n td {\n border-top: var(--border-width) solid var(--table-border-color);\n border-bottom: 0;\n }\n}\n\n// Striped\ntable {\n &[role=\"grid\"] {\n tbody tr:nth-child(odd) {\n background-color: var(--table-row-stripped-background-color);\n }\n }\n}\n","/**\n * Code\n */\n\n// Reboot based on :\n// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css\n// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n// ––––––––––––––––––––\n\n// 1. Correct the inheritance and scaling of font size in all browsers\n// 2. Correct the odd `em` font sizing in all browsers\npre,\ncode,\nkbd,\nsamp {\n font-size: 0.875em; // 2\n font-family: var(--font-family); // 1\n}\n\n// Prevent overflow of the container in all browsers (opinionated)\npre {\n -ms-overflow-style: scrollbar;\n overflow: auto;\n}\n\n// Pico\n// ––––––––––––––––––––\n\npre,\ncode,\nkbd {\n border-radius: var(--border-radius);\n background: var(--code-background-color);\n color: var(--code-color);\n font-weight: var(--font-weight);\n line-height: initial;\n}\n\ncode,\nkbd {\n display: inline-block;\n padding: 0.375rem 0.5rem;\n}\n\npre {\n display: block;\n margin-bottom: var(--spacing);\n overflow-x: auto;\n\n > code {\n display: block;\n padding: var(--spacing);\n background: none;\n font-size: 14px;\n line-height: var(--line-height);\n }\n}\n\n// Code Syntax\ncode {\n // Tags\n b {\n color: var(--code-tag-color);\n font-weight: var(--font-weight);\n }\n\n // Properties\n i {\n color: var(--code-property-color);\n font-style: normal;\n }\n\n // Values\n u {\n color: var(--code-value-color);\n text-decoration: none;\n }\n\n // Comments\n em {\n color: var(--code-comment-color);\n font-style: normal;\n }\n}\n\n// kbd\nkbd {\n background-color: var(--code-kbd-background-color);\n color: var(--code-kbd-color);\n vertical-align: baseline;\n}\n","/**\n * Miscs\n */\n\n// Reboot based on :\n// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css\n// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n// ––––––––––––––––––––\n\n// 1. Correct the inheritance of border color in Firefox\n// 2. Add the correct box sizing in Firefox\nhr {\n height: 0; // 2\n border: 0;\n border-top: 1px solid var(--muted-border-color);\n color: inherit; // 1\n}\n\n// Add the correct display in IE 10+\n[hidden],\ntemplate {\n @if $enable-important {\n display: none !important;\n } \n @else {\n display: none;\n }\n}\n\n// Add the correct display in IE 9-\ncanvas {\n display: inline-block;\n}\n","/**\n * Accordion ()\n */\n\ndetails {\n display: block;\n margin-bottom: var(--spacing);\n padding-bottom: var(--spacing);\n border-bottom: var(--border-width) solid var(--accordion-border-color);\n\n summary {\n line-height: 1rem;\n list-style-type: none;\n cursor: pointer;\n\n &:not([role]) {\n color: var(--accordion-close-summary-color);\n }\n\n @if $enable-transitions {\n transition: color var(--transition);\n }\n\n // Reset marker\n &::-webkit-details-marker {\n display: none;\n }\n\n &::marker {\n display: none;\n }\n\n &::-moz-list-bullet {\n list-style-type: none;\n }\n\n // Marker\n &::after {\n display: block;\n width: 1rem;\n height: 1rem;\n margin-inline-start: calc(var(--spacing, 1rem) * 0.5);\n float: right;\n transform: rotate(-90deg);\n background-image: var(--icon-chevron);\n background-position: right center;\n background-size: 1rem auto;\n background-repeat: no-repeat;\n content: \"\";\n\n @if $enable-transitions {\n transition: transform var(--transition);\n }\n }\n\n &:focus {\n outline: none;\n\n &:not([role=\"button\"]) {\n color: var(--accordion-active-summary-color);\n }\n }\n\n // Type button\n &[role=\"button\"] {\n width: 100%;\n text-align: left;\n\n // Marker\n &::after {\n height: calc(1rem * var(--line-height, 1.5));\n background-image: var(--icon-chevron-button);\n }\n\n @if $enable-classes {\n // .contrast\n &:not(.outline).contrast {\n // Marker\n &::after {\n background-image: var(--icon-chevron-button-inverse);\n }\n }\n }\n }\n }\n\n // Open\n &[open] {\n > summary {\n margin-bottom: calc(var(--spacing));\n\n &:not([role]) {\n &:not(:focus) {\n color: var(--accordion-open-summary-color);\n }\n }\n\n &::after {\n transform: rotate(0);\n }\n }\n }\n}\n\n[dir=\"rtl\"] {\n details {\n summary {\n text-align: right;\n\n &::after {\n float: left;\n background-position: left center;\n }\n }\n }\n}\n","/**\n * Card ()\n */\n\narticle {\n margin: var(--block-spacing-vertical) 0;\n padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);\n border-radius: var(--border-radius);\n background: var(--card-background-color);\n box-shadow: var(--card-box-shadow);\n\n > header,\n > footer {\n margin-right: calc(var(--block-spacing-horizontal) * -1);\n margin-left: calc(var(--block-spacing-horizontal) * -1);\n padding: calc(var(--block-spacing-vertical) * 0.66)\n var(--block-spacing-horizontal);\n background-color: var(--card-sectionning-background-color);\n }\n\n > header {\n margin-top: calc(var(--block-spacing-vertical) * -1);\n margin-bottom: var(--block-spacing-vertical);\n border-bottom: var(--border-width) solid var(--card-border-color);\n border-top-right-radius: var(--border-radius);\n border-top-left-radius: var(--border-radius);\n }\n\n > footer {\n margin-top: var(--block-spacing-vertical);\n margin-bottom: calc(var(--block-spacing-vertical) * -1);\n border-top: var(--border-width) solid var(--card-border-color);\n border-bottom-right-radius: var(--border-radius);\n border-bottom-left-radius: var(--border-radius);\n }\n}\n","/**\n * Modal ()\n */\n\n:root {\n --scrollbar-width: 0px;\n}\n\ndialog {\n display: flex;\n z-index: 999;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n align-items: center;\n justify-content: center;\n width: inherit;\n min-width: 100%;\n height: inherit;\n min-height: 100%;\n padding: var(--spacing);\n border: 0;\n backdrop-filter: var(--modal-overlay-backdrop-filter);\n background-color: var(--modal-overlay-background-color);\n color: var(--color);\n\n // Content\n article {\n max-height: calc(100vh - var(--spacing) * 2);\n overflow: auto;\n\n @if map-get($breakpoints, \"sm\") {\n @media (min-width: map-get($breakpoints, \"sm\")) {\n max-width: map-get($viewports, \"sm\");\n }\n }\n\n @if map-get($breakpoints, \"md\") {\n @media (min-width: map-get($breakpoints, \"md\")) {\n max-width: map-get($viewports, \"md\");\n }\n }\n\n > header,\n > footer {\n padding: calc(var(--block-spacing-vertical) * 0.5)\n var(--block-spacing-horizontal);\n }\n\n > header {\n .close {\n margin: 0;\n margin-left: var(--spacing);\n float: right;\n }\n }\n\n > footer {\n text-align: right;\n\n [role=\"button\"] {\n margin-bottom: 0;\n\n &:not(:first-of-type) {\n margin-left: calc(var(--spacing) * 0.5);\n }\n }\n }\n\n p {\n &:last-of-type {\n margin: 0;\n }\n }\n\n // Close icon\n @if $enable-classes {\n .close {\n display: block;\n width: 1rem;\n height: 1rem;\n margin-top: calc(var(--block-spacing-vertical) * -0.5);\n margin-bottom: var(--typography-spacing-vertical);\n margin-left: auto;\n background-image: var(--icon-close);\n background-position: center;\n background-size: auto 1rem;\n background-repeat: no-repeat;\n opacity: 0.5;\n\n @if $enable-transitions {\n transition: opacity var(--transition);\n }\n\n &:is([aria-current], :hover, :active, :focus) {\n opacity: 1;\n }\n }\n }\n }\n\n // Closed state\n &:not([open]),\n &[open=\"false\"] {\n display: none;\n }\n}\n\n// Utilities\n@if $enable-classes {\n .modal-is-open {\n padding-right: var(--scrollbar-width, 0px);\n overflow: hidden;\n pointer-events: none;\n touch-action: none;\n\n dialog {\n pointer-events: auto;\n }\n }\n}\n\n// Animations\n@if ($enable-classes and $enable-transitions) {\n $animation-duration: 0.2s;\n\n :where(.modal-is-opening, .modal-is-closing) {\n dialog,\n dialog > article {\n animation-duration: $animation-duration;\n animation-timing-function: ease-in-out;\n animation-fill-mode: both;\n }\n\n dialog {\n animation-duration: ($animation-duration * 4);\n animation-name: modal-overlay ;\n\n > article {\n animation-delay: $animation-duration;\n animation-name: modal;\n }\n }\n }\n\n .modal-is-closing {\n dialog,\n dialog > article {\n animation-delay: 0s;\n animation-direction: reverse;\n }\n }\n\n @keyframes modal-overlay {\n from {\n backdrop-filter: none;\n background-color: transparent;\n }\n }\n\n @keyframes modal {\n from {\n transform: translateY(-100%);\n opacity: 0;\n }\n }\n}\n","/**\n * Nav\n */\n\n// Reboot based on :\n// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n\n// Prevent VoiceOver from ignoring list semantics in Safari (opinionated)\n:where(nav li)::before {\n float: left;\n content: \"\\200B\";\n}\n\n// Pico\n// ––––––––––––––––––––\n\n// Horizontal Nav\nnav,\nnav ul {\n display: flex;\n}\n\nnav {\n justify-content: space-between;\n\n ol,\n ul {\n align-items: center;\n margin-bottom: 0;\n padding: 0;\n list-style: none;\n\n &:first-of-type {\n margin-left: calc(var(--nav-element-spacing-horizontal) * -1);\n }\n &:last-of-type {\n margin-right: calc(var(--nav-element-spacing-horizontal) * -1);\n }\n }\n\n li {\n display: inline-block;\n margin: 0;\n padding: var(--nav-element-spacing-vertical)\n var(--nav-element-spacing-horizontal);\n\n // Minimal support for buttons and forms elements\n > * {\n --spacing: 0;\n }\n }\n\n :where(a, [role=\"link\"]) {\n display: inline-block;\n margin: calc(var(--nav-link-spacing-vertical) * -1)\n calc(var(--nav-link-spacing-horizontal) * -1);\n padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);\n border-radius: var(--border-radius);\n text-decoration: none;\n\n &:is([aria-current], :hover, :active, :focus) {\n text-decoration: none;\n }\n }\n\n // Breadcrumb\n &[aria-label=\"breadcrumb\"] {\n align-items: center;\n justify-content: start;\n\n & ul li {\n &:not(:first-child) {\n margin-inline-start: var(--nav-link-spacing-horizontal);\n }\n\n &:not(:last-child) {\n ::after {\n position: absolute;\n width: calc(var(--nav-link-spacing-horizontal) * 2);\n margin-inline-start: calc(var(--nav-link-spacing-horizontal) / 2);\n content: \"/\";\n color: var(--muted-color);\n text-align: center;\n }\n }\n }\n\n & a[aria-current] {\n background-color: transparent;\n color: inherit;\n text-decoration: none;\n pointer-events: none;\n }\n }\n\n // Minimal support for role=\"button\"\n [role=\"button\"] {\n margin-right: inherit;\n margin-left: inherit;\n padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);\n }\n}\n\n// Vertical Nav\naside {\n nav,\n ol,\n ul,\n li {\n display: block;\n }\n\n li {\n padding: calc(var(--nav-element-spacing-vertical) * 0.5)\n var(--nav-element-spacing-horizontal);\n\n a {\n display: block;\n }\n\n // Minimal support for links as buttons\n [role=\"button\"] {\n margin: inherit;\n }\n }\n}\n\n// Breadcrumb RTL\n[dir=\"rtl\"] {\n nav {\n &[aria-label=\"breadcrumb\"] {\n & ul li {\n &:not(:last-child) {\n ::after {\n content: \"\\\\\";\n }\n }\n }\n }\n }\n}\n","/**\n * Progress\n */\n\n// Reboot based on :\n// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css\n// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n// ––––––––––––––––––––\n\n// 1. Add the correct display in Edge 18- and IE\n// 2. Add the correct vertical alignment in Chrome, Edge, and Firefox\nprogress {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n// Pico\n// ––––––––––––––––––––\n\nprogress {\n // Reset the default appearance\n -webkit-appearance: none;\n -moz-appearance: none;\n\n // Styles\n display: inline-block;\n appearance: none;\n width: 100%;\n height: 0.5rem;\n margin-bottom: calc(var(--spacing) * 0.5);\n overflow: hidden;\n\n // Remove Firefox and Opera border\n border: 0;\n border-radius: var(--border-radius);\n background-color: var(--progress-background-color);\n\n // IE10 uses `color` to set the bar background-color\n color: var(--progress-color);\n\n &::-webkit-progress-bar {\n border-radius: var(--border-radius);\n background: none;\n }\n &[value]::-webkit-progress-value {\n background-color: var(--progress-color);\n }\n &::-moz-progress-bar {\n background-color: var(--progress-color);\n }\n\n // Indeterminate state\n @media (prefers-reduced-motion: no-preference) {\n &:indeterminate {\n background: var(--progress-background-color)\n linear-gradient(\n to right,\n var(--progress-color) 30%,\n var(--progress-background-color) 30%\n )\n top left / 150% 150% no-repeat;\n animation: progress-indeterminate 1s linear infinite;\n\n &[value]::-webkit-progress-value {\n background-color: transparent;\n }\n &::-moz-progress-bar {\n background-color: transparent;\n }\n }\n }\n}\n\n[dir=\"rtl\"] {\n @media (prefers-reduced-motion: no-preference) {\n progress:indeterminate {\n animation-direction: reverse;\n }\n }\n}\n\n@keyframes progress-indeterminate {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n}\n","/**\n * Dropdown ([role=\"list\"])\n */\n\n// Menu\ndetails[role=\"list\"],\nli[role=\"list\"] {\n position: relative;\n}\n\ndetails[role=\"list\"] summary + ul,\nli[role=\"list\"] > ul {\n display: flex;\n z-index: 99;\n position: absolute;\n top: auto;\n right: 0;\n left: 0;\n flex-direction: column;\n margin: 0;\n padding: 0;\n border: var(--border-width) solid var(--dropdown-border-color);\n border-radius: var(--border-radius);\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n background-color: var(--dropdown-background-color);\n box-shadow: var(--card-box-shadow);\n color: var(--dropdown-color);\n white-space: nowrap;\n\n li {\n width: 100%;\n margin-bottom: 0;\n padding: calc(var(--form-element-spacing-vertical) * 0.5)\n var(--form-element-spacing-horizontal);\n list-style: none;\n\n &:first-of-type {\n margin-top: calc(var(--form-element-spacing-vertical) * 0.5);\n }\n\n &:last-of-type {\n margin-bottom: calc(var(--form-element-spacing-vertical) * 0.5);\n }\n\n a {\n display: block;\n margin: calc(var(--form-element-spacing-vertical) * -0.5)\n calc(var(--form-element-spacing-horizontal) * -1);\n padding: calc(var(--form-element-spacing-vertical) * 0.5)\n var(--form-element-spacing-horizontal);\n overflow: hidden;\n color: var(--dropdown-color);\n text-decoration: none;\n text-overflow: ellipsis;\n\n &:hover {\n background-color: var(--dropdown-hover-background-color);\n }\n }\n }\n}\n\n// Marker\ndetails[role=\"list\"] summary,\nli[role=\"list\"] > a {\n &::after {\n display: block;\n width: 1rem;\n height: calc(1rem * var(--line-height, 1.5));\n margin-inline-start: 0.5rem;\n float: right;\n transform: rotate(0deg);\n background-position: right center;\n background-size: 1rem auto;\n background-repeat: no-repeat;\n content: \"\";\n }\n}\n\n// Global dropdown only\ndetails[role=\"list\"] {\n padding: 0;\n border-bottom: none;\n\n // Style as \n summary {\n margin-bottom: 0;\n\n &:not([role]) {\n height: calc(\n 1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 +\n var(--border-width) * 2\n );\n padding: var(--form-element-spacing-vertical)\n var(--form-element-spacing-horizontal);\n border: var(--border-width) solid var(--form-element-border-color);\n border-radius: var(--border-radius);\n background-color: var(--form-element-background-color);\n color: var(--form-element-placeholder-color);\n line-height: inherit;\n cursor: pointer;\n\n @if $enable-transitions {\n transition: background-color var(--transition),\n border-color var(--transition), color var(--transition),\n box-shadow var(--transition);\n }\n\n &:active,\n &:focus {\n border-color: var(--form-element-active-border-color);\n background-color: var(--form-element-active-background-color);\n }\n\n &:focus {\n box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color);\n }\n }\n }\n\n // Close for details[role=\"list\"]\n &[open] summary {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n\n &::before {\n display: block;\n z-index: 1;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: none;\n content: \"\";\n cursor: default;\n }\n }\n}\n\n// All Dropdowns inside \nnav details[role=\"list\"] summary,\nnav li[role=\"list\"] a {\n display: flex;\n direction: ltr;\n}\n\nnav details[role=\"list\"] summary + ul,\nnav li[role=\"list\"] > ul {\n min-width: fit-content;\n border-radius: var(--border-radius);\n\n li a {\n border-radius: 0;\n }\n}\n\n// Dropdowns inside as nested \nnav details[role=\"list\"] {\n summary,\n summary:not([role]) {\n height: auto;\n padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);\n }\n\n &[open] summary {\n border-radius: var(--border-radius);\n }\n\n summary + ul {\n margin-top: var(--outline-width);\n margin-inline-start: 0;\n }\n\n summary[role=\"link\"] {\n margin-bottom: calc(var(--nav-link-spacing-vertical) * -1);\n line-height: var(--line-height);\n\n + ul {\n margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));\n margin-inline-start: calc(var(--nav-link-spacing-horizontal) * -1);\n }\n }\n}\n\n// Dropdowns inside a without using \nli[role=\"list\"] {\n // Open on hover (for mobile)\n // or on active/focus (for keyboard navigation)\n &:hover > ul,\n a:active ~ ul,\n a:focus ~ ul {\n display: flex;\n }\n\n > ul {\n display: none;\n margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));\n margin-inline-start: calc(\n var(--nav-element-spacing-horizontal) - var(--nav-link-spacing-horizontal)\n );\n }\n\n > a::after {\n background-image: var(--icon-chevron);\n }\n}\n\nlabel > details[role=\"list\"] {\n margin-top: calc(var(--spacing) * .25);\n margin-bottom: var(--spacing);\n}\n","/**\n * Loading ([aria-busy=true])\n */\n\n\n// Cursor\n[aria-busy=\"true\"] {\n cursor: progress;\n}\n\n// Everyting except form elements\n[aria-busy=\"true\"]:not(input, select, textarea) {\n\n &::before {\n display: inline-block;\n width: 1em;\n height: 1em;\n border: 0.1875em solid currentColor;\n border-radius: 1em;\n border-right-color: transparent;\n content: \"\";\n vertical-align: text-bottom;\n vertical-align: -.125em; // Visual alignment\n animation: spinner 0.75s linear infinite;\n opacity: var(--loading-spinner-opacity);\n }\n\n &:not(:empty) {\n &::before {\n margin-right: calc(var(--spacing) * 0.5);\n margin-left: 0;\n margin-inline-start: 0;\n margin-inline-end: calc(var(--spacing) * 0.5);\n }\n }\n\n &:empty {\n text-align: center;\n }\n}\n\n// Buttons and links\nbutton,\ninput[type=\"submit\"],\ninput[type=\"button\"],\ninput[type=\"reset\"],\na {\n &[aria-busy=\"true\"] {\n pointer-events: none;\n }\n}\n\n// Animation: rotate\n@keyframes spinner {\n to {\n transform: rotate(360deg);\n }\n}\n","/**\n * Tooltip ([data-tooltip])\n */\n\n[data-tooltip] {\n position: relative;\n\n &:not(a, button, input) {\n border-bottom: 1px dotted;\n text-decoration: none;\n cursor: help;\n }\n\n &[data-placement=\"top\"]::before,\n &[data-placement=\"top\"]::after,\n &::before,\n &::after {\n display: block;\n z-index: 99;\n position: absolute;\n bottom: 100%;\n left: 50%;\n padding: .25rem .5rem;\n overflow: hidden;\n transform: translate(-50%, -.25rem);\n border-radius: var(--border-radius);\n background: var(--tooltip-background-color);\n content: attr(data-tooltip);\n color: var(--tooltip-color);\n font-style: normal;\n font-weight: var(--font-weight);\n font-size: .875rem;\n text-decoration: none;\n text-overflow: ellipsis;\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n }\n \n // Caret\n &[data-placement=\"top\"]::after,\n &::after {\n padding: 0;\n transform: translate(-50%, 0rem);\n border-top: .3rem solid;\n border-right: .3rem solid transparent;\n border-left: .3rem solid transparent;\n border-radius: 0;\n background-color: transparent;\n content: \"\";\n color: var(--tooltip-background-color);\n }\n\n &[data-placement=\"bottom\"] {\n &::before,\n &::after {\n top: 100%;\n bottom: auto;\n transform: translate(-50%, .25rem);\n }\n \n &:after{\n transform: translate(-50%, -.3rem);\n border: .3rem solid transparent;\n border-bottom: .3rem solid;\n }\n }\n\n &[data-placement=\"left\"] {\n &::before,\n &::after {\n top: 50%;\n right: 100%;\n bottom: auto;\n left: auto;\n transform: translate(-.25rem, -50%);\n }\n \n &:after{\n transform: translate(.3rem, -50%);\n border: .3rem solid transparent;\n border-left: .3rem solid;\n }\n }\n\n &[data-placement=\"right\"] {\n &::before,\n &::after {\n top: 50%;\n right: auto;\n bottom: auto;\n left: 100%;\n transform: translate(.25rem, -50%);\n }\n \n &:after{\n transform: translate(-.3rem, -50%);\n border: .3rem solid transparent;\n border-right: .3rem solid;\n }\n }\n\n // Display\n &:focus,\n &:hover {\n &::before,\n &::after {\n opacity: 1;\n }\n }\n\n \n @if $enable-transitions {\n\n // Animations, excluding touch devices\n @media (hover: hover) and (pointer: fine) {\n &[data-placement=\"bottom\"]:focus,\n &[data-placement=\"bottom\"]:hover\n &:focus,\n &:hover {\n &::before,\n &::after {\n animation-duration: .2s;\n animation-name: tooltip-slide-top;\n }\n\n &::after {\n animation-name: tooltip-caret-slide-top; \n }\n }\n \n &[data-placement=\"bottom\"] {\n &:focus,\n &:hover {\n &::before,\n &::after {\n animation-duration: .2s;\n animation-name: tooltip-slide-bottom;\n }\n \n &::after {\n animation-name: tooltip-caret-slide-bottom; \n }\n }\n }\n \n &[data-placement=\"left\"] {\n &:focus,\n &:hover {\n &::before,\n &::after {\n animation-duration: .2s;\n animation-name: tooltip-slide-left;\n }\n \n &::after {\n animation-name: tooltip-caret-slide-left; \n }\n }\n }\n \n &[data-placement=\"right\"] {\n &:focus,\n &:hover {\n &::before,\n &::after {\n animation-duration: .2s;\n animation-name: tooltip-slide-right;\n }\n \n &::after {\n animation-name: tooltip-caret-slide-right; \n }\n }\n }\n }\n\n @keyframes tooltip-slide-top {\n from {\n transform: translate(-50%, .75rem);\n opacity: 0;\n }\n to {\n transform: translate(-50%, -.25rem);\n opacity: 1;\n }\n }\n \n @keyframes tooltip-caret-slide-top {\n from {\n opacity: 0;\n }\n 50% {\n transform: translate(-50%, -.25rem);\n opacity: 0;\n }\n to {\n transform: translate(-50%, 0rem);\n opacity: 1;\n }\n }\n \n @keyframes tooltip-slide-bottom {\n from {\n transform: translate(-50%, -.75rem);\n opacity: 0;\n }\n to {\n transform: translate(-50%, .25rem);\n opacity: 1;\n }\n }\n \n @keyframes tooltip-caret-slide-bottom {\n from {\n opacity: 0;\n }\n 50% {\n transform: translate(-50%, -.5rem);\n opacity: 0;\n }\n to {\n transform: translate(-50%, -.3rem);\n opacity: 1;\n }\n }\n \n @keyframes tooltip-slide-left {\n from {\n transform: translate(.75rem, -50%);\n opacity: 0;\n }\n to {\n transform: translate(-.25rem, -50%);\n opacity: 1;\n }\n }\n \n @keyframes tooltip-caret-slide-left {\n from {\n opacity: 0;\n }\n 50% {\n transform: translate(.05rem, -50%);\n opacity: 0;\n }\n to {\n transform: translate(.3rem, -50%);\n opacity: 1;\n }\n }\n \n @keyframes tooltip-slide-right {\n from {\n transform: translate(-.75rem, -50%);\n opacity: 0;\n }\n to {\n transform: translate(.25rem, -50%);\n opacity: 1;\n }\n }\n \n @keyframes tooltip-caret-slide-right {\n from {\n opacity: 0;\n }\n 50% {\n transform: translate(-.05rem, -50%);\n opacity: 0;\n }\n to {\n transform: translate(-.3rem, -50%);\n opacity: 1;\n }\n }\n }\n}\n","/**\n * Accessibility & User interaction\n */\n\n// Based on :\n// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css\n// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n// ––––––––––––––––––––\n\n// Accessibility\n\n// Change the cursor on control elements in all browsers (opinionated)\n[aria-controls] {\n cursor: pointer;\n}\n\n// Change the cursor on disabled, not-editable, or otherwise inoperable elements in all browsers (opinionated)\n[aria-disabled=\"true\"],\n[disabled] {\n cursor: not-allowed;\n}\n\n// Change the display on visually hidden accessible elements in all browsers (opinionated)\n[aria-hidden=\"false\"][hidden] {\n display: initial;\n}\n\n[aria-hidden=\"false\"][hidden]:not(:focus) {\n clip: rect(0, 0, 0, 0);\n position: absolute;\n}\n\n// User interaction\n// Remove the tapping delay in IE 10\na,\narea,\nbutton,\ninput,\nlabel,\nselect,\nsummary,\ntextarea,\n[tabindex] {\n -ms-touch-action: manipulation;\n}\n\n// Pico\n// ––––––––––––––––––––\n\n[dir=\"rtl\"] {\n direction: rtl;\n}\n","@if $enable-transitions and $enable-important {\n /**\n * Reduce Motion Features\n */\n\n // Based on :\n // - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css\n // ––––––––––––––––––––\n\n // 1. Remove animations when motion is reduced (opinionated)\n // 2. Remove fixed background attachments when motion is reduced (opinionated)\n // 3. Remove timed scrolling behaviors when motion is reduced (opinionated)\n // 4. Remove transitions when motion is reduced (opinionated)\n @media (prefers-reduced-motion: reduce) {\n *:not([aria-busy=\"true\"]),\n :not([aria-busy=\"true\"])::before,\n :not([aria-busy=\"true\"])::after {\n background-attachment: initial !important; // 2\n animation-duration: 1ms !important; // 1\n animation-delay: -1ms !important; // 1\n animation-iteration-count: 1 !important; // 1\n scroll-behavior: auto !important; // 3\n transition-delay: 0s !important; // 4\n transition-duration: 0s !important; // 4\n }\n }\n}\n"]}
\ No newline at end of file
diff --git a/spReportify.js b/spReportify.js
index 9166f9c..b950add 100644
--- a/spReportify.js
+++ b/spReportify.js
@@ -12,7 +12,8 @@
site: {}, // Info about the SharePoint Site.
builder: {}, // Work Data for the Report Builder.
environ: {}, // Environment (Browser, Language, etc.)
- runner: {}
+ runner: {},
+ home: {}
}
// Variable to refer to SP API
let _api;
@@ -88,7 +89,16 @@ init: function(){
page: ( (window.location.pathname).split("/").pop() ).toLowerCase(),
};
// Runtime Mode
- spReportifyData.environ["mode"] = ( spReportifyData.environ.page == spReportifyData.config.pageBuilder ? "builder" : "runner" );
+ switch( spReportifyData.environ.page ){
+ case spReportifyData.config.pageBuilder:
+ spReportifyData.environ["mode"] = "builder";
+ break;
+ case spReportifyData.config.pageRunner:
+ spReportifyData.environ["mode"] = "runner";
+ break;
+ default:
+ spReportifyData.environ["mode"] = "maintenance";
+ }
// Output to Console - Initialization
spr.logTitle( "Initializing spReportify..." );
@@ -116,6 +126,12 @@ start: function(){
this.stackAdd( this.getUser );
this.stackAdd( this.getSite );
+ // Commands for Maintenance
+ if( spReportifyData.environ.mode == "maintenance" ){
+ spReportifyData.sp.caml = new SP.CamlQuery();
+ this.stackAdd( this.getLists );
+ }
+
// Commands for Report Builder
if( spReportifyData.environ.mode == "builder" ){
this.waitingShow( "Starting Report Builder..." );
@@ -185,7 +201,7 @@ getSite: function(){
* Retrieve all allowed lists & libraries in the site.
*/
getLists: function(){
- spReportifyData.builder["lists"] = [];
+ var localList = [];
_api = spReportifyData.sp.web.get_lists();
spReportifyData.sp.ctx.load( _api );
spReportifyData.sp.ctx.executeQueryAsync(
@@ -224,7 +240,7 @@ getLists: function(){
// Add the list to the spReportifyData.builder.lists Array
if( KeepThisList ){
- spReportifyData.builder.lists.push(
+ localList.push(
{
id: thisListId,
name: thisListName,
@@ -234,8 +250,15 @@ getLists: function(){
)
}
}
+
+ if( spReportifyData.environ.mode == 'builder' ){
+ spReportifyData.builder["lists"] = localList;
+ }else{
+ spReportifyData.home["lists"] = localList;
+ }
+
spr.logInfo( "Available Lists" );
- spr.logTable( spReportifyData.builder.lists );
+ spr.logTable( localList );
spr.stackRun();
},
// Failure
@@ -339,6 +362,7 @@ builderUpdateList: function(){
*/
builderGetColumns: function(){
var listId = document.getElementById("BuilderFormControlDatasource").value
+
if( listId != "undefined" && listId+"" != "" ){
spReportifyData.builder["list"] = {};
spReportifyData.builder["list"] = spReportifyData.builder.lists.filter(x => x.id == listId)[0];
@@ -1173,6 +1197,184 @@ runnerInsertData: function(){
},
+homeGetReports: function(){
+ spr.waitingShow("Fetching Available Reports...");
+ spReportifyData.sp.caml.set_viewXml('5000 ');
+ // Get Reports using Reports List Reference
+ switch( (spReportifyData.config.reportListRefType).toLowerCase() ){
+ case "title":
+ _api = spReportifyData.sp.web.get_lists().getByTitle(spReportifyData.config.reportListRef).getItems( spReportifyData.sp.caml );
+ break;
+ case "guid":
+ _api = spReportifyData.sp.web.get_lists().getById(spReportifyData.config.reportListRef).getItems( spReportifyData.sp.caml );
+ break;
+ }
+ spReportifyData.sp.ctx.load( _api );
+ spReportifyData.sp.ctx.executeQueryAsync(
+ // Success
+ function(){
+ spReportifyData.home["reports"] = [];
+ var enumReports = _api.getEnumerator();
+ while( enumReports.moveNext() ){
+ var thisReport = enumReports.get_current();
+ var thisReportId = thisReport.get_id();
+ var thisReportTitle = thisReport.get_item("Title");
+ var thisReportDescription = thisReport.get_item("Description");
+ var thisReportList = spReportifyData.home.lists.find( x => x.id == thisReport.get_item("ListId") );
+
+ spReportifyData.home.reports.push({
+ id: thisReportId,
+ title: thisReportTitle,
+ description: ( thisReportDescription == null ? '' : thisReportDescription ),
+ listId: thisReportList.id,
+ listName: thisReportList.name
+ });
+ };
+
+ // Sort the list of reports
+ spReportifyData.home.reports.sort((a, b) => {
+ const nameA = a.title.toLowerCase();
+ const nameB = b.title.toLowerCase();
+ if( nameA < nameB ){ return -1; }
+ if (nameA > nameB ){ return 1; }
+ return 0;
+ });
+
+ spr.logTrace( "All Available Reports" );
+ spr.logTable( spReportifyData.home.reports );
+ // Insert Reports in the Homepage
+ document.getElementById("HomeReportsBody").innerHTML="";
+ spr.show("HomeReports");
+ spr.hide("HomeCards");
+ (spReportifyData.home.reports).forEach( function( thisReport){
+ var elRow = document.createElement("tr");
+ elRow.id = thisReport.id;
+ elRow.innerHTML = `${thisReport.listName} ${thisReport.title} ${thisReport.description}
+ Edit
+
+ Execute
+ `;
+ document.getElementById("HomeReportsBody").appendChild( elRow );
+ });
+ spr.waitingHide();
+ },
+ // Failure
+ Function.createDelegate( this, this.logSysError )
+ );
+
+},
+
+homeBackHome: function(){
+ spr.hide("HomeReports");
+ spr.hide("HomeDict");
+ spr.hide("HomeDictListName");
+ spr.hide("HomeDictLists");
+ spr.hide("HomeDictColumns");
+ spr.show("HomeCards");
+},
+
+homeInitializeDict: function(){
+ document.getElementById("HomeDictListsBody").innerHTML = "";
+ // Create Lists Rows
+ spReportifyData.home.lists.forEach( function( thisList ){
+ var elRow = document.createElement("tr");
+ elRow.id = thisList.id;
+ elRow.innerHTML = ` ${thisList.id}${thisList.name} ${thisList.type}
+ Browse
+ `;
+ document.getElementById("HomeDictListsBody").appendChild(elRow);
+ });
+ spr.show("HomeDict");
+ spr.hide("HomeDictButtonBack");
+ spr.show("HomeDictLists");
+ spr.hide("HomeCards");
+},
+
+homeBackDict: function(){
+ spr.hide("HomeDictColumns");
+ spr.hide("HomeDictListName");
+ spr.show("HomeDictLists");
+},
+
+homeBrowseList: function( listID ){
+ spr.waitingShow("Fetching Columns...");
+
+ spr.logTrace( "Selected List" );
+ spr.logTable( listID );
+
+ _api = spReportifyData.sp.web.get_lists().getById(listID).get_fields();
+ spReportifyData.sp.ctx.load( _api );
+ spReportifyData.sp.ctx.executeQueryAsync(
+ // Success
+ function(){
+ spReportifyData.home["columns"] = [];
+ var enumFields = _api.getEnumerator();
+ while( enumFields.moveNext() ){
+ var thisField = enumFields.get_current();
+ console.log( thisField );
+ var thisFieldTitle = thisField.get_title();
+ var thisFieldStatic = thisField.get_staticName();
+ var thisFieldSealed = thisField.get_sealed();
+ var thisFieldHidden = thisField.get_hidden();
+ var thisFieldFromBase = thisField.get_fromBaseType();
+ var thisFieldSortable = thisField.get_sortable();
+ var thisFieldXML = thisField.get_schemaXml();
+ var thisFieldType = thisField.get_typeAsString();
+ var thisFieldDescription = thisField.get_description();
+ var thisFieldIndexed = thisField.get_indexed();
+
+ spReportifyData.home.columns.push({
+ title: thisFieldTitle,
+ static: thisFieldStatic,
+ sealed: thisFieldSealed,
+ hidden: thisFieldHidden,
+ fromBase: thisFieldFromBase,
+ sortable: thisFieldSortable,
+ xml: thisFieldXML,
+ description: thisFieldDescription,
+ indexed: thisFieldIndexed,
+ type: thisFieldType
+ });
+
+ }
+ // Sort the list of columns
+ spReportifyData.home.columns.sort((a, b) => {
+ const nameA = a.title.toLowerCase();
+ const nameB = b.title.toLowerCase();
+ if( nameA < nameB ){ return -1; }
+ if (nameA > nameB ){ return 1; }
+ return 0;
+ });
+
+ spr.logTrace( "Available Columns in the Selected List" );
+ spr.logTable( spReportifyData.home.columns );
+
+ // Write the Dictionary
+ spReportifyData.home.columns.forEach( function( thisColumn ){
+ var elRow = document.createElement("tr");
+ elRow.innerHTML = `${thisColumn.static}${thisColumn.title}
+ ${thisColumn.type} ${thisColumn.description}
+ ${(thisColumn.sortable?'✔':'')}
+ ${(thisColumn.indexed?'✔':'')}
+ ${(thisColumn.sealed?'✔':'')}
+ ${(thisColumn.hidden?'✔':'')} `;
+ document.getElementById("HomeDictColumnsBody").appendChild(elRow);
+ });
+
+ spr.show("HomeDictListName");
+ document.getElementById("HomeDictListName").innerHTML = spReportifyData.home.lists.find( x => x.id == listID ).name;
+ spr.show("HomeDictButtonBack");
+ spr.show("HomeDictColumns");
+ spr.hide("HomeDictLists");
+ spr.waitingHide();
+
+ },
+ // Failure
+ Function.createDelegate( this, this.logSysError )
+ );
+
+},
+
/**
* stackAdd
* Add a function to the 'stack'.
diff --git a/dbr.aspx b/sprBuild.aspx
similarity index 99%
rename from dbr.aspx
rename to sprBuild.aspx
index 69ad462..4a992ac 100644
--- a/dbr.aspx
+++ b/sprBuild.aspx
@@ -1,6 +1,6 @@
- dSP Report Builder
+ spReportify ➥ Builder
diff --git a/drr.aspx b/sprExecute.aspx
similarity index 97%
rename from drr.aspx
rename to sprExecute.aspx
index 84936d5..4451ac6 100644
--- a/drr.aspx
+++ b/sprExecute.aspx
@@ -1,6 +1,6 @@
- dSP Report
+ spReportify ➥ Report
diff --git a/sprHome.aspx b/sprHome.aspx
new file mode 100644
index 0000000..e025792
--- /dev/null
+++ b/sprHome.aspx
@@ -0,0 +1,166 @@
+
+
+ spReportify ➥ Home
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SP Reportify
+ A Reporting Solution for your data in SharePoint!
+
+
+
+
+
+
+
+
Report Builder
+
Create and edit reports.
+
+
+
+
+
+
Report Directory
+
View a list of all reports.
+
+
+
+
+
+
Dictionary Explorer
+
Explore your Data Dictionary.
+
+
+
+
+
+
+
+
+ Close
+
+
+
+
+
+ List
+ Report Name
+ Description
+ Options
+
+
+
+
+
+
+
+
+
+
+
+
+ Back
+
+
+ Close
+
+
+
+
+
+
+
+ Internal ID
+
+
+ ↓ List Name
+
+
+ Type
+
+
+ Options
+
+
+
+
+
+
+
+ List Name
+
+
+
+
+ Static Name
+
+
+ ↓ Display Name
+
+
+ Data Type
+
+
+ Description
+
+
+ Sortable
+
+
+ Indexed
+
+
+ Sealed
+
+
+ Hidden
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file