:root {
	--font-family: "Plus Jakarta Sans", sans-serif;
	--color-primary: 			rgb(118,87,217);
	--color-primary-hover: 		rgb(81,54,168);
	--color-primary-mid: 		rgb(139,114,229);
	--color-primary-light: 		rgb(228,222,247);
	--color-secondary: 			rgb(22,166,160);
	--color-secondary-hover: 	rgb(8,122,120);
	--color-secondary-mid: 		rgb(32,184,176);
	--color-secondary-light: 	rgb(219,250,249);
	--color-gradient-start: 	rgb(118,87,217);
	--color-gradient-end: 		rgb(22,166,160);
	--color-success: 			rgb(85,185,90);
	--color-success-hover: 		rgb(65,151,70);
	--color-success-mid:    	rgb(110,195,115);
	--color-success-light:    	rgb(226,243,227);
	--color-accent: 			rgb(245,197,66);
	--color-accent-hover: 		rgb(220,168,35);
	--color-background: 		rgb(243,244,246);
	--color-surface: 			rgb(255,255,255);
	--color-surface-hover: 		rgb(248,249,250);
	--color-surface-elevated: 	rgb(236,236,236);
	--color-text: 				rgb(32,33,36);
	--color-text-secondary: 	rgb(95,99,104);
	--color-text-muted: 		rgb(128,132,138);
	--color-text-inverse: 		rgb(255,255,255);
	--color-border: 			rgb(217,220,227);
	--color-border-light: 		rgb(232,234,238);
	--color-border-focus: 		rgb(118,87,217);
	--color-error: 				rgb(211,69,69);
	--color-error-mid:      	rgb(218,98,98);
	--color-error-light:      	rgb(249,220,220);
	--color-failure: 			rgb(211,69,69);
	--color-failure-mid:      	rgb(218,98,98);
	--color-failure-light:     	rgb(249,220,220);
	--color-warning: 			rgb(235,164,45);
	--color-warning-mid:    	rgb(238,178,78);
	--color-warning-light:    	rgb(251,239,218);
	--color-info: 				rgb(64,126,214);
	--color-info-mid:       	rgb(93,146,220);
	--color-info-light:       	rgb(221,232,248);
	--radius-input: 6px;



    --c-ink: 		rgb(20,49,58);
    --c-ink-o: 		rgba(20,49,58,0.5);
    --c-ink-2: 		rgb(31,71,80);
    --c-ink-soft: 	rgb(220,233,232);
    --c-amber: 		rgb(201,125,30);
    --c-amber-o: 	rgba(201,125,30,0.5);
    --c-amber-soft: rgb(244,226,189);
    --c-teal: 		rgb(47,143,134);
    --c-teal-o: 	rgba(47,143,134,0.5);
    --c-teal-2: 	rgb(87, 190, 180);
    --c-teal-soft:	rgb(219,236,234);
    --c-coral: 		rgb(194,78,59);
    --c-coral-o: 	rgb(194,78,59,0.5);
    --c-coral-2: 	rgb(241, 130, 113);
    --c-coral-soft: rgb(245,220,213);
	--c-straw: 		rgb(138, 112, 14);
    --c-straw-o: 	rgba(255,244,181,0.5);
    --c-straw-2: 	rgb(255,244,181);
    --c-straw-soft:	rgb(250, 242, 196);
	--c-slate: 		rgb(124,134,142);
    --c-slate-o: 	rgba(124,134,142,0.5);
    --c-slate-2: 	rgb(89,100,109);
    --c-slate-soft: rgb(232,229,220);
	--c-violet: 	rgb(102, 62, 186);
	--c-violet-soft:rgb(232, 224, 252);
	--c-sky: 		rgb(32, 104, 178);
	--c-sky-soft: 	rgb(210, 234, 252);
	--c-rose: 		rgb(178, 46, 98);
	--c-rose-soft:	rgb(252, 218, 232);
	--c-sage: 		rgb(52, 124, 64);
	--c-sage-soft:	rgb(216, 238, 218);
	--c-mauve: 		rgb(136, 58, 148);
	--c-mauve-soft:rgb(242, 220, 244);
    --shadow-sm: 0 1px 2px rgba(20,30,32,.06);
    --shadow-md: 0 6px 20px rgba(20,30,32,.10);
    --shadow-lg: 0 20px 60px rgba(20,30,32,.18);
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --radius-xl: 22px;


    --button_theme: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none'><circle cx='9' cy='9' r='3.4' stroke='rgb(95,99,104)' stroke-width='1.4'/><path d='M9 1.6V3.4M9 14.6V16.4M2.6 9H1M17 9H15.4M4 4L5.2 5.2M14 14L12.8 12.8M14 4L12.8 5.2M4 14L5.2 12.8' stroke='rgb(95,99,104)' stroke-width='1.4' stroke-linecap='round'/></svg>");
    --button_theme_hover: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none'><circle cx='9' cy='9' r='3.4' stroke='rgb(32,33,36)' stroke-width='1.4'/><path d='M9 1.6V3.4M9 14.6V16.4M2.6 9H1M17 9H15.4M4 4L5.2 5.2M14 14L12.8 12.8M14 4L12.8 5.2M4 14L5.2 12.8' stroke='rgb(32,33,36)' stroke-width='1.4' stroke-linecap='round'/></svg>");
    --button_pwshow: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><path d='M1 8s2.6-4.5 7-4.5S15 8 15 8s-2.6 4.5-7 4.5S1 8 1 8Z' stroke='rgb(95,99,104)' stroke-width='1.3'/><path d='M2 2L14 14' stroke='rgb(95,99,104)' stroke-width='1.3'/></svg>");
    --button_pwhide: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><path d='M1 8s2.6-4.5 7-4.5S15 8 15 8s-2.6 4.5-7 4.5S1 8 1 8Z' stroke='rgb(95,99,104)' stroke-width='1.3'/><circle cx='8' cy='8' r='2' stroke='rgb(95,99,104)' stroke-width='1.3'/></svg>");
    --button_pwshow_hover: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><path d='M1 8s2.6-4.5 7-4.5S15 8 15 8s-2.6 4.5-7 4.5S1 8 1 8Z' stroke='rgb(32,33,36)' stroke-width='1.3'/><path d='M2 2L14 14' stroke='rgb(32,33,36)' stroke-width='1.3'/></svg>");
    --button_pwhide_hover: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><path d='M1 8s2.6-4.5 7-4.5S15 8 15 8s-2.6 4.5-7 4.5S1 8 1 8Z' stroke='rgb(32,33,36)' stroke-width='1.3'/><circle cx='8' cy='8' r='2' stroke='rgb(32,33,36)' stroke-width='1.3'/></svg>");
    --button_dialog_close: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'><path d='M3 3L13 13M13 3L3 13' stroke='rgb(95,99,104)' stroke-width='1.5' stroke-linecap='round'/></svg>");
    --button_dialog_close_hover: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'><path d='M3 3L13 13M13 3L3 13' stroke='rgb(32,33,36)' stroke-width='1.5' stroke-linecap='round'/></svg>");

	--button-group-create: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' width='14' height='14' fill='none' stroke='rgb(95,99,104)' stroke-width='1.3'><circle cx='7' cy='7' r='5.5' /><path d='M7 4V10M4 7H10' stroke-linecap='round'/></svg>");
	--button-group-manage: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' width='14' height='14' fill='none' stroke='rgb(95,99,104)'><path d='M7 1.5L9.5 4.5H8V9.5H6V4.5H4.5L7 1.5Z' stroke-width='1.2' stroke-linejoin='round'/><path d='M2 11H12' stroke-width='1.3' stroke-linecap='round'/></svg>");
	--button-group-create-h: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' width='14' height='14' fill='none' stroke='rgb(32,33,36)' stroke-width='1.3'><circle cx='7' cy='7' r='5.5' /><path d='M7 4V10M4 7H10' stroke-linecap='round'/></svg>");
	--button-group-manage-h: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' width='14' height='14' fill='none' stroke='rgb(32,33,36)'><path d='M7 1.5L9.5 4.5H8V9.5H6V4.5H4.5L7 1.5Z' stroke-width='1.2' stroke-linejoin='round'/><path d='M2 11H12' stroke-width='1.3' stroke-linecap='round'/></svg>");

	--icon-grp-chevron:	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' width='14' height='14' fill='none' stroke='rgb(95,99,104)'><path d='M3 5L7 9L11 5' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	--icon-grp-check: 	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' width='14' height='14' fill='none' stroke='rgb(47,143,134)'><path d='M2.5 7L5.5 10L11.5 4' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'></path></svg>");
	--icon-calendar: 	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none' stroke='rgb(95,99,104)' stroke-width='1.3'><rect x='1.5' y='2.8' width='13' height='11.2' rx='1.3' /><path d='M1.5 6H14.5' /><path d='M4.5 1.5V4M11.5 1.5V4' stroke-linecap='round'/></svg>");
	--icon-calendar-h: 	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none' stroke='rgb(32,33,36)' stroke-width='1.3'><rect x='1.5' y='2.8' width='13' height='11.2' rx='1.3' /><path d='M1.5 6H14.5' /><path d='M4.5 1.5V4M11.5 1.5V4' stroke-linecap='round'/></svg>");
	--icon-board: 		url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none' stroke='rgb(95,99,104)' stroke-width='1.3'><rect x='1.5' y='2' width='3.6' height='12' rx='1' /><rect x='6.2' y='2' width='3.6' height='8' rx='1' /><rect x='10.9' y='2' width='3.6' height='10' rx='1' /></svg>");
	--icon-board-h: 	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none' stroke='rgb(32,33,36)' stroke-width='1.3'><rect x='1.5' y='2' width='3.6' height='12' rx='1' /><rect x='6.2' y='2' width='3.6' height='8' rx='1' /><rect x='10.9' y='2' width='3.6' height='10' rx='1' /></svg>");
	--icon-timeline: 	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none'><path d='M2 3V13' stroke='rgb(95,99,104)' stroke-width='1.3' stroke-linecap='round'/><rect x='3.5' y='3.5'  width='7'   height='2.2' rx='1' fill='rgb(95,99,104)' opacity='.9'/><rect x='3.5' y='6.9'  width='9.5' height='2.2' rx='1' fill='rgb(95,99,104)' opacity='.65'/><rect x='3.5' y='10.3' width='5.5' height='2.2' rx='1' fill='rgb(95,99,104)' opacity='.4'/></svg>");
	--icon-timeline-h: 	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none'><path d='M2 3V13' stroke='rgb(32,33,36)' stroke-width='1.3' stroke-linecap='round'/><rect x='3.5' y='3.5'  width='7'   height='2.2' rx='1' fill='rgb(32,33,36)' opacity='.9'/><rect x='3.5' y='6.9'  width='9.5' height='2.2' rx='1' fill='rgb(32,33,36)' opacity='.65'/><rect x='3.5' y='10.3' width='5.5' height='2.2' rx='1' fill='rgb(32,33,36)' opacity='.4'/></svg>");
	--icon-list: 		url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none'><circle cx='2.6' cy='3.5' r='1' fill='rgb(95,99,104)'/><circle cx='2.6' cy='8' r='1' fill='rgb(95,99,104)'/><circle cx='2.6' cy='12.5' r='1' fill='rgb(95,99,104)'/><path d='M6 3.5H14M6 8H14M6 12.5H14' stroke='rgb(95,99,104)' stroke-width='1.3' stroke-linecap='round'/></svg>");
	--icon-list-h: 		url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none'><circle cx='2.6' cy='3.5' r='1' fill='rgb(32,33,36)'/><circle cx='2.6' cy='8' r='1' fill='rgb(32,33,36)'/><circle cx='2.6' cy='12.5' r='1' fill='rgb(32,33,36)'/><path d='M6 3.5H14M6 8H14M6 12.5H14' stroke='rgb(32,33,36)' stroke-width='1.3' stroke-linecap='round'/></svg>");
	--icon-card: 		url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16' fill='none' stroke='rgb(95,99,104)' stroke-width='2'><rect x='3' y='3' width='7' height='7' rx='1'/><rect x='14' y='3' width='7' height='7' rx='1'/><rect x='3' y='14' width='7' height='7' rx='1'/><rect x='14' y='14' width='7' height='7' rx='1'/></svg>");
	--icon-card-h: 		url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16' fill='none' stroke='rgb(32,33,36)' stroke-width='2'><rect x='3' y='3' width='7' height='7' rx='1'/><rect x='14' y='3' width='7' height='7' rx='1'/><rect x='3' y='14' width='7' height='7' rx='1'/><rect x='14' y='14' width='7' height='7' rx='1'/></svg>");
	--loader: 			url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><circle fill='rgb(255,255,255)' stroke='rgb(255,255,255)' stroke-width='15' r='15' cx='40' cy='100'><animate attributeName='opacity' calcMode='spline' dur='2' values='1;0;1;' keySplines='.5 0 .5 1;.5 0 .5 1' repeatCount='indefinite' begin='-.4'></animate></circle><circle fill='rgb(255,255,255)' stroke='rgb(255,255,255)' stroke-width='15' r='15' cx='100' cy='100'><animate attributeName='opacity' calcMode='spline' dur='2' values='1;0;1;' keySplines='.5 0 .5 1;.5 0 .5 1' repeatCount='indefinite' begin='-.2'></animate></circle><circle fill='rgb(255,255,255)' stroke='rgb(255,255,255)' stroke-width='15' r='15' cx='160' cy='100'><animate attributeName='opacity' calcMode='spline' dur='2' values='1;0;1;' keySplines='.5 0 .5 1;.5 0 .5 1' repeatCount='indefinite' begin='0'></animate></circle></svg>");
	
	--icon-edit: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 20h4L21 9l-4-4L6 16v4zM15.5 6.5l4 4'/></svg>");
	--icon-view: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M11 3a8 8 0 1 0 0 16a8 8 0 1 0 0-16zM21 21l-4.35-4.35'/></svg>");
	--icon-copy: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M11 9h9a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-9a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2zM5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/></svg>");
	--icon-gear: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9.89 5.11L10.19 2.67L13.81 2.67L14.11 5.11L15.38 5.64L17.31 4.12L19.88 6.69L18.36 8.62L18.89 9.89L21.33 10.19L21.33 13.81L18.89 14.11L18.36 15.38L19.88 17.31L17.31 19.88L15.38 18.36L14.11 18.89L13.81 21.33L10.19 21.33L9.89 18.89L8.62 18.36L6.69 19.88L4.12 17.31L5.64 15.38L5.11 14.11L2.67 13.81L2.67 10.19L5.11 9.89L5.64 8.62L4.12 6.69L6.69 4.12L8.62 5.64ZM12 9a3 3 0 1 0 0 6a3 3 0 1 0 0-6z'/></svg>");
	--icon-delete:		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 7h16M9 7V4h6v3M6 7l1 13h10l1-13M10 11v5M14 11v5'/></svg>");
	--icon-import:		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3v12M7 10l5 5 5-5M4 17v3h16v-3'/></svg>");
	--icon-export: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 15V3M7 8l5-5 5 5M4 17v3h16v-3'/></svg>");
	--icon-flist: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M5 3h14a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2zM5 14h14a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2z'/></svg>");
	--icon-table: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M5 4h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zM3 9h18M3 14.5h18M9 9v11'/></svg>");
 	--icon-fgrid: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zM3 9h18M3 15h18M9 3v18M15 3v18'/></svg>");
	--icon-lock: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M7 11h10a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2zM8 11V7a4 4 0 0 1 8 0v4'/></svg>");
	--icon-unlock: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M7 11h10a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2zM8 11V7a4 4 0 0 1 7.5-2'/></svg>");
	--icon-pin: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 3h6v6l3 4v3H6v-3l3-4zM12 16v5'/></svg>");
	--icon-unpin: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 3h6v6l3 4v3H6v-3l3-4zM12 16v5M4 4l16 16'/></svg>");
	--icon-move: 		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3v18M3 12h18M12 3l-3 3M12 3l3 3M12 21l-3-3M12 21l3-3M3 12l3-3M3 12l3 3M21 12l-3-3M21 12l-3 3'/></svg>");
}
html[data-theme="dark"] {
	--color-primary: 			rgb(139,114,229);
	--color-primary-hover: 		rgb(161,139,239);
	--color-primary-mid:       	rgb(96,68,198);
	--color-primary-light:     	rgb(24,17,50);
	--color-secondary: 			rgb(32,184,176);
	--color-secondary-hover: 	rgb(54,202,194);
	--color-secondary-mid:     	rgb(24,137,131);
	--color-secondary-light:   	rgb(6,35,33);
	--color-gradient-start: 	rgb(139,114,229);
	--color-gradient-end: 		rgb(32,184,176);
	--color-success: 			rgb(104,201,107);
	--color-success-hover: 		rgb(128,216,131);
	--color-success-mid:       	rgb(67,156,70);
	--color-success-light:     	rgb(16,38,17);
	--color-accent: 			rgb(255,212,90);
	--color-accent-hover: 		rgb(255,224,125);
	--color-background: 		rgb(23,24,27);
	--color-surface: 			rgb(32,33,36);
	--color-surface-hover: 		rgb(43,45,49);
	--color-surface-elevated: 	rgb(43,45,49);
	--color-text: 				rgb(245,245,247);
	--color-text-secondary: 	rgb(169,173,183);
	--color-text-muted: 		rgb(128,132,142);
	--color-text-inverse: 		rgb(23,24,27);
	--color-border: 			rgb(58,61,68);
	--color-border-light: 		rgb(48,50,55);
	--color-border-focus: 		rgb(139,114,229);
	--color-error: 				rgb(239,103,103);
	--color-error-mid:         	rgb(219,41,41);
	--color-error-light:       	rgb(49,9,9);
	--color-warning: 			rgb(245,183,69);
	--color-warning-mid:       	rgb(199,137,23);
	--color-warning-light:     	rgb(44,30,5);
	--color-info: 				rgb(91,151,232);
	--color-info-mid:          	rgb(38,107,201);
	--color-info-light:        	rgb(10,26,49);
  
    
    --c-ink: rgb(115,197,188);
    --c-ink-o: rgba(115,197,188,0.5);
    --c-ink-2: rgb(143,216,207);
    --c-ink-soft: rgb(27,52,49);
    --c-amber: rgb(227,162,70);
    --c-amber-o: rgba(227,162,70,0.5);
    --c-amber-soft: rgb(58,45,23);
    --c-teal: rgb(75,170,159);
    --c-teal-o: rgba(75,170,159,0.5);
    --c-teal-2: rgb(114, 214, 203);
    --c-teal-soft: rgb(23,52,48);
    --c-coral: rgb(222,114,87);
    --c-coral-o: rgba(222,114,87,0.5);
    --c-coral-2: rgb(252, 157, 133);
    --c-coral-soft: rgb(58,32,25);
    --c-straw: rgb(210, 188, 78);
    --c-straw-o: rgba(236, 220, 128,0.5);
    --c-straw-2: rgb(236, 220, 128);
	--c-straw-soft: rgb(52, 44, 10);
	--c-slate: rgb(140,150,158);
    --c-slate-o: rgba(140,150,158,0.5);
    --c-slate-2: rgb(170, 180, 187,0.5);
    --c-slate-soft: rgb(34,42,48);
	--c-violet: rgb(178, 148, 238);
	--c-violet-soft: rgb(44, 30, 72);
	--c-sky: rgb(84, 160, 228);
	--c-sky-soft: rgb(16, 36, 62);
	--c-rose: rgb(228, 100, 152);
	--c-rose-soft: rgb(62, 18, 38);
	--c-sage: rgb(92, 172, 106);
	--c-sage-soft: rgb(18, 44, 22);
	--c-mauve: rgb(196, 114, 210);
	--c-mauve-soft: rgb(50, 20, 54);
    --shadow-sm: 0 1px 2px rgba(0,0,0,.3);
    --shadow-md: 0 10px 30px rgba(0,0,0,.45);
    --shadow-lg: 0 24px 70px rgba(0,0,0,.55);

    --button_theme: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none'><path d='M15.5 10.8A6.8 6.8 0 1 1 7.2 2.5a5.6 5.6 0 0 0 8.3 8.3Z' stroke='rgb(169,173,183)' stroke-width='1.4' stroke-linejoin='round'/></svg>");
    --button_theme_hover: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none'><path d='M15.5 10.8A6.8 6.8 0 1 1 7.2 2.5a5.6 5.6 0 0 0 8.3 8.3Z' stroke='rgb(245,245,247)' stroke-width='1.4' stroke-linejoin='round'/></svg>");
    --button_pwshow: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><path d='M1 8s2.6-4.5 7-4.5S15 8 15 8s-2.6 4.5-7 4.5S1 8 1 8Z' stroke='rgb(169,173,183)' stroke-width='1.3'/><path d='M2 2L14 14' stroke='rgb(169,173,183)' stroke-width='1.3'/></svg>");
    --button_pwhide: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><path d='M1 8s2.6-4.5 7-4.5S15 8 15 8s-2.6 4.5-7 4.5S1 8 1 8Z' stroke='rgb(169,173,183)' stroke-width='1.3'/><circle cx='8' cy='8' r='2' stroke='rgb(169,173,183)' stroke-width='1.3'/></svg>");
    --button_pwshow_hover: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><path d='M1 8s2.6-4.5 7-4.5S15 8 15 8s-2.6 4.5-7 4.5S1 8 1 8Z' stroke='rgb(245,245,247)' stroke-width='1.3'/><path d='M2 2L14 14' stroke='rgb(245,245,247)' stroke-width='1.3'/></svg>");
    --button_pwhide_hover: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><path d='M1 8s2.6-4.5 7-4.5S15 8 15 8s-2.6 4.5-7 4.5S1 8 1 8Z' stroke='rgb(245,245,247)' stroke-width='1.3'/><circle cx='8' cy='8' r='2' stroke='rgb(245,245,247)' stroke-width='1.3'/></svg>");
    --button_dialog_close: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'><path d='M3 3L13 13M13 3L3 13' stroke='rgb(169,173,183)' stroke-width='1.5' stroke-linecap='round'/></svg>");
    --button_dialog_close_hover: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'><path d='M3 3L13 13M13 3L3 13' stroke='rgb(245,245,247)' stroke-width='1.5' stroke-linecap='round'/></svg>");

	--button-group-create: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' width='14' height='14' fill='none' stroke='rgb(169,173,183)' stroke-width='1.3'><circle cx='7' cy='7' r='5.5' /><path d='M7 4V10M4 7H10' stroke-linecap='round'/></svg>");
	--button-group-manage: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' width='14' height='14' fill='none' stroke='rgb(169,173,183)'><path d='M7 1.5L9.5 4.5H8V9.5H6V4.5H4.5L7 1.5Z' stroke-width='1.2' stroke-linejoin='round'/><path d='M2 11H12' stroke-width='1.3' stroke-linecap='round'/></svg>");
	--button-group-create-h: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' width='14' height='14' fill='none' stroke='rgb(245,245,247)' stroke-width='1.3'><circle cx='7' cy='7' r='5.5' /><path d='M7 4V10M4 7H10' stroke-linecap='round'/></svg>");
	--button-group-manage-h: url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' width='14' height='14' fill='none' stroke='rgb(245,245,247)'><path d='M7 1.5L9.5 4.5H8V9.5H6V4.5H4.5L7 1.5Z' stroke-width='1.2' stroke-linejoin='round'/><path d='M2 11H12' stroke-width='1.3' stroke-linecap='round'/></svg>");
	
	--icon-grp-chevron:	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' width='14' height='14' fill='none' stroke='rgb(169,173,183)'><path d='M3 5L7 9L11 5' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	--icon-grp-check: 	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' width='14' height='14' fill='none' stroke='rgb(75,170,159)'><path d='M2.5 7L5.5 10L11.5 4' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'></path></svg>");	
	--icon-calendar: 	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none' stroke='rgb(169,173,183)' stroke-width='1.3'><rect x='1.5' y='2.8' width='13' height='11.2' rx='1.3' /><path d='M1.5 6H14.5' /><path d='M4.5 1.5V4M11.5 1.5V4' stroke-linecap='round'/></svg>");
	--icon-calendar-h: 	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none' stroke='rgb(245,245,247)' stroke-width='1.3'><rect x='1.5' y='2.8' width='13' height='11.2' rx='1.3' /><path d='M1.5 6H14.5' /><path d='M4.5 1.5V4M11.5 1.5V4' stroke-linecap='round'/></svg>");
	--icon-board: 		url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none' stroke='rgb(169,173,183)' stroke-width='1.3'><rect x='1.5' y='2' width='3.6' height='12' rx='1' /><rect x='6.2' y='2' width='3.6' height='8' rx='1' /><rect x='10.9' y='2' width='3.6' height='10' rx='1' /></svg>");
	--icon-board-h: 	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none' stroke='rgb(245,245,247)' stroke-width='1.3'><rect x='1.5' y='2' width='3.6' height='12' rx='1' /><rect x='6.2' y='2' width='3.6' height='8' rx='1' /><rect x='10.9' y='2' width='3.6' height='10' rx='1' /></svg>");
	--icon-timeline: 	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none'><path d='M2 3V13' stroke='rgb(169,173,183)' stroke-width='1.3' stroke-linecap='round'/><rect x='3.5' y='3.5'  width='7'   height='2.2' rx='1' fill='rgb(169,173,183)' opacity='.9'/><rect x='3.5' y='6.9'  width='9.5' height='2.2' rx='1' fill='rgb(169,173,183)' opacity='.65'/><rect x='3.5' y='10.3' width='5.5' height='2.2' rx='1' fill='rgb(169,173,183)' opacity='.4'/></svg>");
	--icon-timeline-h: 	url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none'><path d='M2 3V13' stroke='rgb(245,245,247)' stroke-width='1.3' stroke-linecap='round'/><rect x='3.5' y='3.5'  width='7'   height='2.2' rx='1' fill='rgb(245,245,247)' opacity='.9'/><rect x='3.5' y='6.9'  width='9.5' height='2.2' rx='1' fill='rgb(245,245,247)' opacity='.65'/><rect x='3.5' y='10.3' width='5.5' height='2.2' rx='1' fill='rgb(245,245,247)' opacity='.4'/></svg>");
	--icon-list: 		url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none'><circle cx='2.6' cy='3.5' r='1' fill='rgb(169,173,183)'/><circle cx='2.6' cy='8' r='1' fill='rgb(169,173,183)'/><circle cx='2.6' cy='12.5' r='1' fill='rgb(169,173,183)'/><path d='M6 3.5H14M6 8H14M6 12.5H14' stroke='rgb(169,173,183)' stroke-width='1.3' stroke-linecap='round'/></svg>");
	--icon-list-h: 		url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='none'><circle cx='2.6' cy='3.5' r='1' fill='rgb(245,245,247)'/><circle cx='2.6' cy='8' r='1' fill='rgb(245,245,247)'/><circle cx='2.6' cy='12.5' r='1' fill='rgb(245,245,247)'/><path d='M6 3.5H14M6 8H14M6 12.5H14' stroke='rgb(245,245,247)' stroke-width='1.3' stroke-linecap='round'/></svg>");
	--icon-card: 		url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16' fill='none' stroke='rgb(169,173,183)' stroke-width='2'><rect x='3' y='3' width='7' height='7' rx='1'/><rect x='14' y='3' width='7' height='7' rx='1'/><rect x='3' y='14' width='7' height='7' rx='1'/><rect x='14' y='14' width='7' height='7' rx='1'/></svg>");
	--icon-card-h: 		url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16' fill='none' stroke='rgb(245,245,247)' stroke-width='2'><rect x='3' y='3' width='7' height='7' rx='1'/><rect x='14' y='3' width='7' height='7' rx='1'/><rect x='3' y='14' width='7' height='7' rx='1'/><rect x='14' y='14' width='7' height='7' rx='1'/></svg>");
}

*, *::before, *::after {
    box-sizing: border-box;
}
html, body {
    margin: 0;
    padding: 0;
    height: 100%;
}
html {
	scrollbar-gutter: stable;
}
body {
	background: var(--color-background);
	color: var(--color-text);
	font-family: var(--font-family);
	-webkit-font-smoothing: antialiased;
	transition: background .25s ease,color .25s ease;
	min-height: 100vh;
	overflow-x: hidden;
}
h1, h2, h3, h4 {
    margin: 0;
    font-family: var(--font-family);
    font-weight: 600;
}
p {
    margin: 0;
}
ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
button {
    font-family: inherit;
    cursor: pointer;
    border: none;
    background: none;
    color: inherit;
}
button u {
	text-decoration: underline;
}
button.btn-primary, button.btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 16px;
    border-radius: var(--radius-md);
    font-size: 14px;
    font-weight: 600;
    transition: transform .1s ease, box-shadow .15s ease, opacity .15s ease;
    width: 100%;
}
button.btn-primary:disabled, button.btn-secondary:disabled, button:disabled {
    opacity: .7;
    transform: none;
    cursor: default;
    background-color: var(--color-primary-hover) !important;
    color: var(--color-primary-light) !important;
}
button.btn-primary {
    background: var(--color-primary);
    color: var(--color-background);
}
button.btn-primary:hover {
	background: var(--color-primary-hover);
    box-shadow: var(--shadow-sm);
}
button.btn-secondary {
    background: var(--color-secondary);
    color: var(--color-text-secondary);
}
button.btn-secondary:hover {
	background: var(--color-secondary-hover);
    box-shadow: var(--shadow-sm);
}
button:disabled:hover {
    transform: none !important;
    box-shadow: none;
    background: var(--c-slate-2);
}
input {
    font-family: inherit;
}
input[required]:invalid, textarea[required]:invalid, select[required]:invalid {
	background-color: var(--c-coral-soft) !important;
	border-color: var(--c-coral-2) !important;
}
a {
    color: inherit;
    text-decoration:none;
}
.mono {
    font-family: var(--font-family);
}
:focus-visible {
    outline: 1px solid var(--c-teal) !important;
}
button:focus-visible {
    outline: 2px solid var(--c-teal) !important;
    outline-offset:2px !important;
}

table {
    width: 100%;
    border-collapse: collapse;
}
thead th {
    text-align: center;
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-text-secondary);
    font-weight: 600;
    padding: 12px 16px;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface-elevated);
    user-select: none;
}
thead th.sortable {
    cursor:pointer;
}
thead th.sortable:hover {
    color:var(--color-text);
}
thead th .sort-arrow {
    font-size: 10px;
    margin-left: 4px;
    opacity: .5;
}
tbody tr {
    border-bottom: 1px solid var(--color-border);
    transition: background .12s ease;
}
tbody tr:last-child {
    border-bottom: none;
}
/*
tbody tr:hover {
    background: var(--color-surface-elevated);
}
*/
tbody td {
    text-align: center;
    padding: 11px 16px;
    font-size: 13.5px;
    vertical-align: middle;
}

@media (prefers-reduced-motion: reduce) {
    * {animation-duration:.001ms !important; transition-duration:.001ms !important;}
}

#themeToggle {
	background-image:var(--button_theme);
	background-size:60%;
	background-repeat:no-repeat;
	background-position: center;
}
#themeToggle:hover {
	background-image:var(--button_theme_hover);
	background-color:var(--color-surface-elevated);
}

.link-muted {
    font-size:13px;
    color:var(--color-text-secondary);
    transition:color .15s ease;
    cursor: pointer;
}
.link-muted:hover {
    color:var(--color-text);
}
.link-strong {
    font-size:13px;
    font-weight:600;
    color:var(--color-primary);
    transition:opacity .15s ease;
    cursor: pointer;
}
.link-strong:hover {
    opacity:.75;
}


input[type="checkbox"] {
	appearance: none;
	background-color: var(--color-surface);
	margin: 0;
	font: inherit;
	color: currentColor;
	width: 24px;
	height: 24px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
/*	transform: translateY(-12px); */
	display: grid;
	place-content: center;
	cursor:pointer;
}
.check-control {
	line-height: 24px;
	display: grid !important;
	grid-template-columns: 24px auto;
	gap: 6px;
	cursor:pointer;
}
.check-control + .check-control {
	margin-top: 12px;
}
input[type="checkbox"]::before {
	content: "";
	width: 15px;
	height: 15px;
	transform: scale(0);
	transition: 120ms transform ease-in-out;
	box-shadow: inset 15px 15px var(--color-secondary);
	transform-origin: bottom left;
	clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
	cursor:pointer;
}
input[type="checkbox"]:checked::before {
  transform: scale(1);
}	

.screen {
    display: flex;
    min-height: 100vh;
    width: 100%;
}
.auth-screen {
    position: relative;
    width: 100%;
}
.theme-toggle-auth {
    position: absolute;
    top: 20px; 
    right: 20px;
    z-index: 5;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-sm);
    display: flex;align-items:center;justify-content:center;
    color: var(--color-text-secondary);
    transition: background .15s ease,color .15s ease;
}
.theme-toggle-auth:hover {
    background: var(--color-surface-elevated);
    color: var(--color-text);
}
.auth-brand-pane {
    flex: 1 1 46%;
    max-width: 800px;
	/*
	background: linear-gradient(
		135deg,
		var(--color-gradient-start),
		var(--color-gradient-end)
	);
	*/
	background-image: url('/themes/images/splash.png');
	background-position: bottom left;
	background-size: cover;
    color: var(--color-text);
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: start;
    padding: 60px;
}
.brand-pane-content {
    position: relative;
    z-index: 1;
}
.brand-logo {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 48px;
}
.brand-logo svg {
	height: 60px;
	width: 60px;
	--color-gradient-start: currentColor;
	--color-gradient-end: 	currentColor;
}
.brand-logo span {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 17px;
}
.brand-heading {
    font-size: 30px;
    line-height: 1.25;
    margin-bottom: 16px;
}
.brand-sub {
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--c-brand-text-2);
}



.auth-form-pane {
    flex: 1 1 54%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 40px;
    background: var(--color-background);
}
.auth-form-pane-inner {
    width: 100%;
    max-width: 380px;
}
.auth-mobile-logo {
    display: none;
    align-items: center;
    gap: 8px;
    margin-bottom: 36px;
}
.auth-mobile-logo span {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 17px;
}


.user_auth {
    display: none;
    flex-direction: column;
    animation: fadeUp .35s ease both;
}
.user_auth.active {
    display: flex;
}
.user_auth h1 {
    font-size: 23px;
    margin-bottom: 6px;
}
.user_auth h2 {
    font-weight: normal;
    font-size: 13.5px;
    color: var(--color-text-secondary);
    margin-bottom: 28px;
}
.user_auth p {
    font-weight: normal;
    font-size: 14.5px;
    color: var(--color-text-secondary);
    margin-bottom: 14px;
    margin-bottom: 28px;
}
.user_auth field {
    display: block;
    margin-bottom: 16px;
}
.user_auth field label {
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text-secondary);
    margin-bottom: 6px;
    display: block;
}
.user_auth field input{
    width: 100%;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text);
    border-radius: var(--radius-md);
    padding: 10px 13px;
    font-size: 14px;
    outline: none;
    transition: border-color .15s ease;
    margin-bottom: 4px;
}
.user_auth field input::placeholder {
    color: var(--color-text-secondary);
    opacity: .7;
}
.user_auth field input:focus {
    border-color: var(--c-teal);
}
.user_auth field input.has-error {
    border-color: var(--c-coral);
}
.user_auth button + button {
    margin-top:14px;
}
.user_auth message {
    display: block;
    color: var(--c-coral);
    font-size: 13.5px;
    min-height: 15px;
    margin-top: 0px;
    margin-bottom: 24px;
}
.user_auth message:empty {
    display:none;
}

.auth-switch {
    font-size: 13.5px;
    font-weight: bold;
    color: var(--color-text-secondary);
    margin-top: 24px;
    text-align: center;
    cursor: pointer;
}
.auth-switch.signup {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 24px 0 22px;
}

.field-error {
    display:none;   /* currently unused */
    font-size: 11.5px;
    color: var(--c-coral);
    min-height: 15px;
    margin: 0 0 4px 2px;
}
.password-wrap {
    position:relative;
}
.password-wrap .field-input {
    padding-right: 38px;
}
.password-toggle {
    position: absolute;
    right: 9px;
    top: 50%;
    transform: translateY(-50%);
    width: 26px;
    height: 26px;
    display: flex;align-items:center;
    justify-content: center;
    color: var(--color-text-secondary);
    border-radius: 6px;
	background-size:60%;
	background-repeat:no-repeat;
	background-position: center;
}
.password-toggle:hover {
    color: var(--color-text);
}
.password-reset-remain {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 4px 0 22px;
    font-size: 13px;
    color: var(--color-text-secondary);
}
input[type=password] + button.password-toggle {
    background-image: var(--button_pwhide);
}
input[type=password] + button.password-toggle:hover {
    background-image: var(--button_pwhide_hover);
}
input[type=text] + button.password-toggle {
    background-image: var(--button_pwshow);
}
input[type=text] + button.password-toggle:hover {
    background-image: var(--button_pwshow_hover);
}

.strength-meter {
    height: 4px;
    border-radius: 3px;
    background: var(--color-surface-elevated);
    overflow: hidden;
    margin-bottom: 6px;
}
.strength-meter-fill {
    height: 100%;
    width: 0%;
    border-radius: 3px;
    background: var(--color-border);
    transition: width .25s ease, background .25s ease;
}
.strength-label {
    font-size: 11.5px;
    color: var(--color-text-secondary);
}
.user_auth p.strength-label {
    font-size: 11.5px;
    margin-bottom: 16px;
}

.full_dialog {
    font-size: 11pt;
	padding: 24px;
}
.full_dialog p {
    margin-bottom: 12px;
}
.full_dialog h1 {
    font-size: 13.5pt;
}
.full_dialog h2 {
    font-size: 12.5pt;
}
.full_dialog h3 {
    font-size: 11.5pt;
}

.user-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: var(--color-secondary);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    color: var(--color-background);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12.5px;
    font-weight: 700;
    font-family: var(--font-family);
    flex-shrink: 0;
}
.user-avatar.image {
	color: transparent;
	border: 3px solid var(--color-secondary);
}
.click {
    cursor: pointer;
}

/* Animations */
@keyframes fadeUp {from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

.wrapper {
    display: flex;
    min-height: 100vh;
    width: 100%;
}

/* Navigation Menu */
.sidebar {
    width: 248px;
    flex-shrink: 0;
    background: var(--color-surface);
    border-right: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    position: relative;
    transition: background .25s ease,border-color .25s ease,transform .25s ease;
}
.sidebar-body {
    padding: 20px 14px;
}
.sidebar-logo {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px 10px 12px;
	border-bottom: 1px solid var(--color-border);
}
.sidebar-logo svg {
    flex-shrink: 0;
	height: 40px;
	width: 40px;
}
.sidebar-logo span {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 18px;
    letter-spacing: -0.01em;
}

.sidebar-nav {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.nav-rail {
    position: absolute;
    left: 0;
    top: 0;
    width: 3px;
    height: 38px;
    background: var(--color-primary);
    border-radius: 0 3px 3px 0;
    transition: transform .28s cubic-bezier(.4,0,.2,1);
}
.nav-link, .feed-link {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 9px 12px 9px 16px;
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text-secondary);
    height: 38px;
    text-align: left;
    width: 100%;
    transition: color .15s ease, background .15s ease;
}
.feed-link {
    height: 33px;
}
.nav-link svg { 
    flex-shrink: 0;
    opacity: .85;
}
.nav-link:hover, .feed-link:hover {
    background: var(--color-surface-elevated);
    color: var(--color-text);
}
.nav-link.active, .feed-link.active {
    color: var(--color-text);
    font-weight: 600;
}

.sidebar-section {
    margin-top:26px;
}
.sidebar-section:has(.sidebar-nav:empty) {
  display: none;
}
.sidebar-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-text-secondary);
    padding: 0 12px;
    margin-bottom: 10px;
    font-weight: 600;
}
.project-quicklist li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 12px;
    border-radius: var(--radius-sm);
    font-size: 13.5px;
    color: var(--color-text-secondary);
    cursor: default;
    transition: background .15s ease,color .15s ease;
}
.project-quicklist li:hover {
    background: var(--color-surface-elevated);
    color: var(--color-text);
}
.status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}
.status-dot--teal {
    background: var(--c-teal);
}
.status-dot--amber {
    background: var(--c-amber);
}
.status-dot--coral {
    background: var(--c-coral);
}
.status-dot--slate {
    background: var(--c-slate);
}

.sidebar-footer {
    margin-top: auto;
    padding: 12px;
    border-top: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    gap: 10px;
}
.sidebar-footer .user-avatar {
    width: 30px;
    height: 30px;
    font-size: 12px;
}
.sidebar-footer-text {
    display: flex;
    flex-direction: column;
}
.sidebar-footer-text strong {
    font-size: 13px;
    font-weight: 600;
}
.sidebar-footer-text span {
    font-size: 11.5px;
    color: var(--color-text-secondary);
}


/* Content Window */
.main {
    flex: 1; 
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.topbar{
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 28px;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-background);
    position: sticky;
    top: 0;
    z-index: 5;
}
.breadcrumb {
    font-size: 13.5px;
    color: var(--color-text-secondary);
    white-space: nowrap;
}
#breadcrumbGroup {
    color: var(--color-text);
    font-weight: 600;
}
.mobile-nav-toggle {
    display: none;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    color: var(--color-text);
}
.mobile-nav-toggle:hover {
    background: var(--color-surface-elevated);
}

.search-wrap {
    flex: 1;
    max-width: 380px;
    position: relative;
}
.search-wrap svg {
    position: absolute;
    left: 11px;
    top: 50%;
    transform: translateY(-50%);
    opacity: .55;
}
.search-input {
    width: 100%;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 8px 12px 8px 34px;
    font-size: 13.5px;
    color: var(--color-text);
    outline: none;
    transition: border-color .15s ease;
}
.search-input:focus {
    border-color: var(--c-teal);
}
.search-input::placeholder {
    color: var(--color-text-secondary);
}

.topbar-right {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 12px;
}
.icon-btn {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    color: var(--color-text-secondary);
    transition: background .15s ease,color .15s ease;
}
.icon-btn:hover {
    background: var(--color-surface-elevated);
    color: var(--color-text);
}

.view-container {
  padding: 26px 28px 60px;
  flex: 1;
}
.view { 
    display: none;
}
.view.active {
    display: block;
}
.view-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    gap: 14px;
    flex-wrap: wrap;
}
.view-toolbar h1 {
    font-size: 22px;
}
.view-toolbar-sub {
    font-size: 13.5px;
    color: var(--color-text-secondary);
    margin-top: 3px;
}
.view-toolbar-actions {
    display: flex;
    gap: 10px;
    align-items: center;
}
.view-container .strength-meter {
    margin-top:5px;
}

/* Dashboard */
.stat-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 14px;
    margin-bottom: 20px;
}
.stat-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 16px 18px;
    position: relative;
    overflow: hidden;
}
.stat-card::before {
    content: '';
    position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 5px;
    background: var(--rail);
}
.stat-card .stat-label {
    font-size: 12.5px;
    color: var(--color-text-secondary);
    font-weight: 600;
    margin-bottom: 8px;
}
.stat-card .stat-value {
    font-family: var(--font-family);
    font-size: 28px;
    font-weight: 700;
}
.stat-card .stat-value span {
    font-size: 14px;
    color: var(--color-text-secondary);
    font-weight: 500;
    margin-left: 5px;
}
.stat-card .workload-legend {
	margin-top: 12px;
}
.stat-meta {
    display: flex;
    gap: 2px;
    margin-top: 12px;
    height: 12px;
    border-radius: 999px;
    overflow: hidden;
	background-color: var(--color-surface-hover);
}
.stat-meta i {
    display: block;
    height: 100%;
}
.spark-row {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    height: 34px;
    margin-top: 12px;
}
.spark-bar {
    flex: 1;
    background: var(--c-teal-soft);
    border-radius: 2px 2px 0 0;
}
.spark-bar.is-peak {
    background: var(--c-teal);
}


.proj-bar-track {
    height: 6px;
    background: var(--color-surface-elevated);
    border-radius: 3px;
    overflow: hidden;
}
.proj-bar-fill {
    height: 100%;
}
.proj-bar-fill:last-child {
	border-top-right-radius: var(--radius-sm);
	border-bottom-right-radius: var(--radius-sm);
}
.proj-bar-fill:first-child {
	border-top-left-radius: var(--radius-sm);
	border-bottom-left-radius: var(--radius-sm);
}
/* Team */

.team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill,minmax(250px,1fr));
    gap: 16px;
}
.team-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 18px;
}
.team-card-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}
.team-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 14px;
    background: var(--rail-soft);
    color: var(--rail);
    flex-shrink: 0;
}
.team-card-head strong{
    display: block;
    font-size: 14.5px;
    font-weight: 600;
}
.team-card-head span{
    font-size: 12px;
    color: var(--color-text-secondary);
}
.role-badge{
    display: inline-flex;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-bottom: 12px;
}
.role-Admin {
    background: var(--c-ink-soft);
    color: var(--c-ink-2);
}
.role-Editor {
    background: var(--c-teal-soft);
    color: var(--c-teal);
}
.role-Member, .role-User {
    background: var(--c-slate-soft);
    color: var(--color-secondary);
}
.role-Viewer {
    background: var(--c-amber-soft);
    color: var(--c-amber);
}
.team-workload {
    display: flex;
    align-items: center;
    gap: 8px;
}
.team-workload .proj-bar-track {
    flex: 1;
	display: flex;
    height: 12px;
   	border-radius: 999px;
    overflow: hidden;
    gap: 2px;
}
.team-workload span {
    font-size: 11.5px;
    color: var(--color-text-secondary);
    font-family: var(--font-family);
}

.workload-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.legend-item {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 11.5px;
	color: var(--text-secondary);
}
.legend-dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	flex-shrink: 0;
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 20px;
}
.form-grid form {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 16px 18px;
    position: relative;
    overflow: hidden;
}
.form-grid fieldset, dialog fieldset {
    border: none;
    padding: 0;
}
.form-grid fieldset legend, dialog fieldset legend {
    margin: 0;
    margin-bottom: 16px;
    font-size: 15px;
    font-family: var(--font-family);
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--color-text);
}
.form-grid field, dialog field {
    display: flex;
    align-items: stretch;
    gap: 12px;
    padding: 11px 0;
    border-top: 1px solid var(--color-border);
}
.hidden {
    display: none;
}
/*
.form-grid field:first-of-type {
    border-top: none;
    padding-top: 0;
}
*/
.form-grid field:last-of-type, dialog field:last-of-type {
    border-bottom: 1px solid var(--color-border);
}
.form-grid field field-cell, dialog field field-cell {
    flex-basis: 65%;
}
.form-grid field field-cell:first-of-type, dialog field field-cell:first-of-type {
    flex-basis: 35%;
}
.form-grid field label, dialog field label {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--color-text-secondary);
}
.form-grid field input:not([type="submit"]), .form-grid field textarea, .form-grid field select,   
dialog field input:not([type="submit"]), dialog field textarea, dialog field select {
    width: 100%;
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background-color: var(--color-surface);
    color: var(--color-text);
    font-family: var(--font-family);
    font-size: 13px;
    padding: 8px 8px 8px 8px;
    outline: none;
    transition: border-color .15s ease;
}
field-cell.select {
    position: relative;
}
field-cell.select select {
    padding-right: 12px;
}
field-cell.select::after {
    content: '';
    position: absolute;
    right: 12px;
    top: 50%;
    width: 7px;
    height: 7px;
    border-right: 1.4px solid var(--color-text-secondary);
    border-bottom: 1.4px solid var(--color-text-secondary);
    transform: translateY(-65%) rotate(45deg);
    pointer-events: none;
}
field-cell.select.disabled::after {
    content: none;
}
field-cell.select.reference {
	display: flex;
}
field-cell.select.reference select {
	flex-grow: 1;
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}
field-cell.select.reference::after {
    right: 56px;
}
field-cell.select.reference button {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}
.form-ref-button, .feed-ref-button {
	width: 44px; 
	background-image: var(--icon-table-edit);
	background-color: var(--color-primary);
    background-size: 18px;
    background-repeat: no-repeat;
    background-position: center;
	border-radius: var(--radius-md);
}
.form-ref-button:hover, .feed-ref-button:hover {
	background-color: var(--color-primary-hover);
}

/* Profile */
section[data-view=profile] {
    max-width: 900px;
    margin: 0 auto;
    margin-top: -26px;
    padding: 0 0 80px;
}

.profile-banner {
    height: 210px;
    background-color: var(--color-secondary);
	background-size: cover;
    background-position: center center;
    position: relative;
    overflow: hidden;
    border-radius: 0 0 var(--radius-xl) var(--radius-xl);
}
.profile-header {
  padding: 0 32px;
  position: relative;
}
.avatar-lift {
    position: relative;
    display: inline-block;
    margin-top: -44px;
    margin-bottom: 14px;
}
.profile-avatar {
    width: 88px; height: 88px;
    border-radius: 50%;
    background-color: var(--color-secondary);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    color: var(--color-background);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 28px;
    letter-spacing: -.02em;
    border: 4px solid var(--color-surface);
    box-shadow: var(--shadow-md);
    transition: border-color .22s ease;
}
.online-dot {
    position: absolute;
    bottom: 0px; 
    right: 3px;
    width: 20px; 
    height: 20px;
    border-radius: 50%;
    background: var(--c-slate);
    border: 3px solid var(--color-surface);
    transition: border-color .22s ease;
}
.online-dot.Online {
    background: var(--color-success);
}
.identity-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}
.identity-left { 
    display: flex; 
    flex-direction: column; 
    gap: 8px; 
}
.profile-name { 
    font-size: 26px; 
    font-weight: 700; 
    line-height: 1.1; 
}
.profile-meta-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.role-badge {
    display: inline-flex;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11.5px; font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    background: var(--c-ink-soft);
    color: var(--c-ink-2);
}
.meta-sep { 
    color: var(--color-border); 
    font-size: 14px; 
}
.meta-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12.5px;
    color: var(--color-text-secondary);
    font-family: var(--font-family);
}
.meta-chip.online {
	font-weight: 700;
	color: var(--color-success);
}
.meta-chip svg { 
    flex-shrink: 0; 
    opacity: .7; 
}
.action-row {
    display: flex;
    gap: 8px;
    align-items: center;
}
.action-row button, .btn-ghost {
    display: inline-flex; 
    align-items: center; 
    gap: 7px;
    padding: 8px 14px;
    border-radius: var(--radius-md);
    font-size: 13.5px; font-weight: 600;
    transition: background .15s ease, transform .1s ease, box-shadow .15s ease;
}
.action-row button.btn-action { 
    background: var(--color-primary); 
    border: 1px solid var(--color-border); 
    color: var(--color-background); 
}
.action-row button.btn-ghost, .btn-ghost { 
    background: var(--color-surface); 
    border: 1px solid var(--color-border); 
    color: var(--color-text); 
}
.action-row button:hover { 
    transform: translateY(-1px); 
    box-shadow: var(--shadow-sm); 
}
.btn-ghost:hover {
	background: var(--color-surface-elevated); 
}
.profile-bio {
    font-size: 14px;
    line-height: 1.65;
    color: var(--color-text-secondary);
    margin: 14px 0 20px;
}
.profile-bio strong { 
    color: var(--color-text); 
    font-weight: 600; 
}
.divider {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 0 32px 28px;
}
.body-cols {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 20px;
    padding: 0 32px;
    align-items: start;
}

.panel {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.panel + .panel { 
    margin-top: 14px; 
}
.panel-head {
    padding: 13px 16px 11px;
    border-bottom: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.panel-head h3 { 
    font-size: 13px; 
    font-weight: 600; 
}
.panel-head-action { 
    font-size: 12px; 
    color: var(--c-teal); 
    font-weight: 600; 
    cursor: pointer; 
}
.panel-head-action:hover { 
    opacity: .8; 
}
.panel-body { 
    padding: 14px 16px; 
}

#useravatarCurrent, 
#userbannerCurrent {
	display: block;
	margin-top: 12px;
}
#useravatarPreview, 
#userbannerPreview {
	display: block;
	margin-top: 12px;
}
#useravatarPreview:empty, 
#userbannerPreview:empty {
	display: none;
}
#useravatarCurrent label, 
#useravatarPreview label, 
#userbannerCurrent label,
#userbannerPreview label {
	display: block;
	margin-bottom: 12px;
}
#useravatarCurrent avatar.preview, 
#useravatarPreview avatar.preview {
    display: block;
    height: 200px;
    width: 200px;
    border: 7px solid;
    border-color: var(--color-secondary);
    border-radius: 10rem;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}
#useravatarRemove, 
#useravatarCancel, 
#userbannerRemove, 
#userbannerCancel {
	margin-top: 12px;
	background-color: var(--color-secondary);
	color: var(--color-text-inverse);
	font-weight: bold;
	border-radius: var(--radius-md);
	cursor: pointer;
	width: 100%;
	border: 1px solid var(--color-border);
	font-family: var(--font-family);
    font-size: 13px;
    padding: 8px 8px 8px 8px;
    outline: none;
    transition: border-color .15s ease;
}
#useravatarRemove:hover, 
#useravatarCancel:hover,
#userbannerRemove:hover, 
#userbannerCancel:hover {
	background-color: var(--color-secondary-hover);
}
banner.preview {
    height: 300px;
    border-radius: var(--radius-md);
    display: block;
    margin-left: 0rem;
    margin-right: 0rem;
    background-size: cover;
    background-position: center center;
    padding-top: 0rem;
    border-bottom: none;
}
.contact-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    font-size: 13px;
    color: var(--color-text-secondary);
    border-bottom: 1px solid var(--color-border);
}
.contact-row:last-child { 
    border-bottom: none; 
}
.contact-row svg { 
    flex-shrink: 0; 
    color: var(--color-text-secondary); 
    opacity: .7; 
}
.contact-row a { 
    color: var(--color-text); 
    text-decoration: none; 
    font-weight: 500; 
}
.contact-row a:hover { 
    color: var(--c-teal); 
}

.stats-strip {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	margin-bottom: 14px;
}
.stat-tile {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 14px 16px;
	position: relative;
	overflow: hidden;
}
.stat-tile::before {
	content: '';
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 5px;
	background: var(--rail, var(--c-slate));
}
.stat-tile-label { 
	font-size: 11px; 
	font-weight: 700; 
	text-transform: uppercase; 
	letter-spacing: .05em; 
	color: var(--color-text-secondary); 
	margin-bottom: 6px; 
}
.stat-tile-value { 
	font-family: var(--font-family);
	font-size: 24px; 
	font-weight: 700; 
	line-height: 1; 
}
.stat-tile-sub { 
	font-size: 11px; 
	color: var(--color-text-secondary); 
	margin-top: 4px; 
}
.stat-tile-prcnt {
	font-size :14px;
	font-weight: 500;
	padding-left: 3px;
	color: var(--color-text-secondary);
}



/* Dialogs */
#page_dialogs {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    z-index: 60;
    background: rgba(10,14,17,.48);
    transition: opacity .18s ease;
}
#page_dialogs:empty {
    opacity: 0;
    visibility: hidden;
}
dialog {
    width: calc(100% - 48px);
    /*
    max-width: 560px;
    max-height: 88vh;
    */
    max-width: 660px;
    max-height: 88vh;
    overflow-y: auto;
    color: var(--color-text);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    transform: translateY(8px) scale(.98);
    transition: transform .18s ease;
    border: 0;
    padding: 0;
}
dialog[open] {
    transform: translateY(0) scale(1);
}
/*
-- Obscures Messages, once fixed re-enable
dialog::backdrop {
    background: rgba(10,14,17,.48);
    transition: opacity .18s ease;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px); 
}
*/
dialog#DlgTerms, dialog#DlgPrvcy {
	max-width: none;
}
dialog header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 17px 17px 12px;
    border-bottom: 1px solid var(--color-border);
    font-family: var(--font-family);
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--color-text);
	background-color: var(--color-surface-elevated);
}
dialog header button {
    background-image: var(--button_dialog_close);
    background-repeat: no-repeat;
    background-position: center;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
	background-color: var(--color-surface);
    color: var(--color-text-secondary);
    transition: background .15s ease,color .15s ease;
}
dialog header button:hover {
    background-color: var(--color-surface-hover);
    background-image: var(--button_dialog_close_hover);
    color: var(--color-text);
}
dialog form {
    padding: 12px;
}
dialog form footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 22px 20px;
    margin-top: 6px;
    gap: 10px;
}
body:has(dialog[open]) {
    overflow: hidden;
}

/* Messages */
#page_messages {
    position: fixed;
    bottom: 24px;
    right: 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    z-index: 70;
}
#page_messages span {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-primary);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    padding: 11px 16px;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text);
    opacity: 1;
    transform: translateX(0);
    transition: opacity .2s ease,transform .2s ease;
}
#page_messages span.removed {
    opacity: 0;
    transform: translateX(8px);
}
#page_messages span.success {
    background-color: var(--color-success-light);
    border-color: var(--color-success-light);
    border-left-color: var(--color-success);
}
#page_messages span.failure {
    background-color: var(--color-failure-light);
    border-color: var(--color-failure-light);
    border-left-color: var(--color-failure);
}
#page_messages span.warning {
    background-color: var(--color-warning-light);
    border-color: var(--color-warning-light);
    border-left-color: var(--color-warning);
}
/*
input:-webkit-autofill,
input:-webkit-autofill:focus {
    transition: background-color 0s 600000s, color 0s 600000s !important;
}
*/

input:-webkit-autofill {
	-webkit-box-shadow: 0 0 0px 1000px var(--c-straw-soft) inset;
}
html[data-theme="dark"] input:-webkit-autofill {
	-webkit-box-shadow: 0 0 0px 1000px var(--c-straw-2) inset;
}

.loading-overlay {
	background-color: rgba(0,0,0,.3);
/*	background-image: var(--loader); */
	background-position: center;
	background-repeat: no-repeat;
	background-size: 10%;
	position: fixed;
	top: 0; 
	left: 0;
	height: 100%; 
	width: 100%;
	z-index: 10;
}


/* Group Selections */
.group-trigger {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 16px 12px;
	border-bottom: 1px solid var(--color-border);
	cursor: pointer;
	transition: background .15s ease;
	user-select: none;
	position: relative;
}
.group-trigger:hover {
	background: var(--color-surface-elevated);
}
.group-trigger.open {
	background: var(--color-surface-elevated);
}
.group-avatar {
	width: 28px;
	height: 28px;
	border-radius: var(--radius-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-family);
	font-weight: 700;
	font-size: 11px;
	flex-shrink: 0;
}
.group-avatar.commbu, .switcher-item-avatar.commbu {
	background-color: var(--color-secondary);
	color: var(--c-ink-soft);
}
.group-trigger-text {
	flex: 1;
	min-width: 0;
}
.group-trigger-name {
	font-size: 14px;
	font-weight: 700;
	font-family: var(--font-family);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--color-text);
}
.group-trigger-role {
	font-size: 11px;
	color: var(--color-text-secondary);
	margin-top: 1px;
}
.trigger-chevron {
	flex-shrink: 0;
	height: 14px; 
	width: 14px;
	color: var(--color-text-secondary);
	background-image: var(--icon-grp-chevron);
	transition: transform .2s ease;
}
.group-trigger.open .trigger-chevron {
	transform: rotate(180deg);
}
.group-selector {
	position: relative;
}
.switcher-panel {
	position: absolute;
	top: 100%; /* anchored to group-trigger via JS */
	left: 0;
	right: 0;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-top: none;
	border-radius: 0 0 var(--radius-lg) var(--radius-lg);
	box-shadow: var(--shadow-lg);
	z-index: 100;
	overflow: hidden;

	/* Animate open/close */
	opacity: 0;
	transform: translateY(-6px);
	pointer-events: none;
	transition: opacity .18s ease, transform .18s ease;
}
.switcher-panel.open {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.switcher-search-wrap {
	padding: 10px 12px 8px;
	border-bottom: 1px solid var(--color-border);
	position: relative;
}
.switcher-search-wrap svg {
	position: absolute;
	left: 21px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--color-text-secondary);
	opacity: .6;
	pointer-events: none;
}
.switcher-search {
	width: 100%;
	background: var(--color-surface-elevated);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	padding: 7px 10px 7px 30px;
	font-size: 13px;
	color: var(--color-text);
	outline: none;
	transition: border-color .15s ease;
}
.switcher-search:focus {
	border-color: var(--c-teal);
}
.switcher-search::placeholder {
	color: var(--color-text-secondary);
	opacity: .7;
}
.switcher-list {
	padding: 6px 8px;
	max-height: 260px;
	overflow-y: auto;
}
.switcher-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	border-radius: var(--radius-sm);
	cursor: pointer;
	transition: background .12s ease;
	position: relative;
}
.switcher-item:hover {
	background: var(--color-surface-elevated);
}
.switcher-item.current {
	background: var(--c-teal-soft);
}
.switcher-item-avatar {
	width: 32px;
	height: 32px;
	border-radius: var(--radius-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-family);
	font-weight: 700;
	font-size: 12px;
	flex-shrink: 0;
}
.switcher-item-text {
	flex: 1;
	min-width: 0;
}
.switcher-item-name {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--color-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.switcher-item-meta {
	font-size: 11.5px;
	color: var(--color-text-secondary);
	margin-top: 1px;
}
.switcher-item-check {
	flex-shrink: 0;
	color: var(--c-teal);
	opacity: 0;
	height: 14px;
	width: 14px;
}
.switcher-item.current .switcher-item-check {
	opacity: 1;
	background-image: var(--icon-grp-check);
}
.switcher-item-plan {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: 2px 6px;
	border-radius: 999px;
	flex-shrink: 0;
}
.plan-commbu {
	background: var(--c-ink-soft);
	color: var(--c-ink-2);
}
.plan-pro {
	background: var(--c-ink-soft);
	color: var(--c-ink-2);
}
.plan-free {
	background: var(--c-slate-soft);
	color: var(--color-secondary);
}
.switcher-footer {
	border-top: 1px solid var(--color-border);
	padding: 6px 8px;
}
.switcher-footer-btn {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 24px;
	border-radius: var(--radius-sm);
	font-size: 13px;
	font-weight: 500;
	color: var(--color-text-secondary);
	width: 100%;
	text-align: left;
	transition: background .12s ease, color .12s ease;
	background-repeat: no-repeat;
	background-position-x: 5px;
	background-position-y: center;
	background-size: 14px;
}
.switcher-footer-btn:hover {
	background-color: var(--color-surface-elevated);
	color: var(--color-text);
}
.switcher-footer-btn.create {
	background-image: var(--button-group-create);
}
.switcher-footer-btn.create:hover {
	background-image: var(--button-group-create-h);
}
.switcher-footer-btn.manage {
	background-image: var(--button-group-manage);
}
.switcher-footer-btn.manage:hover {
	background-image: var(--button-group-manage-h);
}

.theme-ink {
	background-color: var(--c-ink-soft);
	color: var(--c-ink);
}
.theme-slate {
	background-color: var(--c-slate-soft);
	color: var(--c-slate);
}
.theme-sky {
	background-color: var(--c-sky-soft);
	color: var(--c-sky);
}
.theme-violet {
	background-color: var(--c-violet-soft);
	color: var(--c-violet);
}
.theme-mauve {
	background-color: var(--c-mauve-soft);
	color: var(--c-mauve);
}
.theme-rose {
	background-color: var(--c-rose-soft);
	color: var(--c-rose);
}
.theme-coral {
	background-color: var(--c-coral-soft);
	color: var(--c-coral);
}
.theme-amber {
	background-color: var(--c-amber-soft);
	color: var(--c-amber);
}
.theme-straw {
	background-color: var(--c-straw-soft);
	color: var(--c-straw);
}
.theme-sage {
	background-color: var(--c-sage-soft);
	color: var(--c-sage);
}
.theme-teal {
	background-color: var(--c-teal-soft);
	color: var(--c-teal);
}
.view-toggle {
	display: inline-flex;
	background: var(--color-surface-elevated);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 3px;
	gap: 2px;
}
.nav-button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 13px;
	border-radius: var(--radius-sm);
	font-size: 13px;
	font-weight: 500;
	color: var(--color-text-secondary);
	cursor: pointer;
	transition: background .12s ease, color .12s ease;
	white-space: nowrap;
	border: 1px solid var(--color-border);
	background-repeat: no-repeat;
	background-position-x: 8px;
	background-position-y: center;
	font-family: inherit;
	padding-left: 28px;
}
.nav-button:hover {
	color: var(--color-text);
	background-color: var(--color-background);
}
.nav-button.active {
	background-color: var(--color-surface);
	color: var(--color-text);
	box-shadow: 0 1px 3px rgba(20, 30, 32, .08), 0 0 0 1px var(--color-border);
}
.nav-button.list {
	background-image: var(--icon-list);
}
.nav-button.list:hover, 
.nav-button.list.active {
	background-image: var(--icon-list-h);
}
.nav-button.card {
	background-image: var(--icon-card);
}
.nav-button.card:hover, 
.nav-button.card.active {
	background-image: var(--icon-card-h);
}
.nav-button.board {
	background-image: var(--icon-board);
}
.nav-button.board:hover, 
.nav-button.board.active {
	background-image: var(--icon-board-h);
}
.nav-button.calendar {
	background-image: var(--icon-calendar);
}
.nav-button.calendar:hover, 
.nav-button.calendar.active {
	background-image: var(--icon-calendar-h);
}
.nav-button.timeline {
	background-image: var(--icon-timeline);
}
.nav-button.timeline:hover, 
.nav-button.timeline.active {
	background-image: var(--icon-timeline-h);
}
/*
.nav-button svg {
	flex-shrink: 0;
	width: 15px;
	height: 15px;
}
*/

form message {
    display: block;
    color: var(--color-error);
    font-size: 13.5px;
    min-height: 15px;
    margin-top: 0px;
    margin-bottom: 18px;
}
form message:empty {
    display:none;
}
.full_dialog a {
	word-break: break-all;
	overflow-wrap: break-word;
}