:root{--bg:#0b0f14;--panel:#131a22;--text:#e6edf3;--muted:#9fb0c0;--accent:#3ea6ff;--border:#243242;--focus:#ffd166;--success:#5a5;--error:#d32f2f;--warning:#ffd166}
*{box-sizing:border-box}
html,body{height:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
.card a, a{color:var(--accent);text-decoration:underline;transition:color 0.2s}
a:hover{color:var(--text)}
a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
a[aria-disabled="true"]{opacity:.6;pointer-events:none;text-decoration:none}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:8px;top:8px;background:var(--focus);color:#000;padding:8px;border-radius:6px;z-index:1001}
.site-header{background:var(--panel);border-bottom:1px solid var(--border);box-shadow:0 1px 3px rgba(0,0,0,0.3);position:sticky;top:0;z-index:1000}
.top-nav{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:12px 16px}
.brand{color:var(--text);text-decoration:none;font-weight:700;font-size:18px;transition:color 0.2s}
.brand:hover{color:var(--accent)}
.nav-links{display:flex;gap:12px;list-style:none;margin:0;padding:0;margin-left:auto}
.nav-links a{color:var(--muted);text-decoration:none;padding:6px 10px;border-radius:6px;transition:all 0.2s;font-weight:500}
.nav-links a[aria-current="page"],.nav-links a:hover{color:var(--text);background:rgba(255,255,255,.05)}
.nav-links a[aria-current="page"]{background:var(--accent);color:#000;font-weight:600}
.container{max-width:1100px;margin:24px auto;padding:0 16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,0.2);transition:box-shadow 0.2s}
.card:hover{box-shadow:0 4px 8px rgba(0,0,0,0.3)}
.card h1,.card h2{margin:0 0 8px}

/* Mobile navigation */
@media (max-width: 720px){
	.nav-toggle{display:block;margin-left:auto;background:transparent;color:var(--text);border:1px solid var(--border);padding:6px 10px;border-radius:6px;cursor:pointer}
	.nav-links{position:absolute;left:0;right:0;top:56px;background:var(--panel);border-bottom:1px solid var(--border);flex-direction:column;gap:0;padding:8px 12px;display:none}
	.nav-links.open{display:flex}
	.nav-links li{margin:0}
	.nav-links a{display:block;padding:10px 12px}
}

@media (min-width: 721px){
	.nav-toggle{display:none}
}
.stat{font-size:32px;font-weight:700;margin:0}
label{display:block;margin:12px 0;font-weight:500}
input,select,textarea{width:100%;background:#0f151c;border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px;font:inherit;transition:all 0.2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(62,166,255,0.1)}
select{cursor:pointer}
/* Button Styles - Clean and Modern */
button,.button{
	background:var(--accent);
	color:#000 !important;
	border:0;
	padding:10px 18px;
	border-radius:6px;
	font-weight:600;
	font-size:14px;
	cursor:pointer;
	font-family:inherit;
	transition:all 0.2s ease;
	display:inline-block;
	text-decoration:none !important;
	line-height:1.4;
}
button:hover,.button:hover{
	background:#5ab5ff;
	color:#000 !important;
	transform:translateY(-1px);
	box-shadow:0 2px 8px rgba(62,166,255,0.3);
}
button:active,.button:active{
	transform:translateY(0);
	color:#000 !important;
}
button:disabled,.button:disabled{
	opacity:0.5;
	cursor:not-allowed;
	transform:none;
	color:#000 !important;
}

/* Secondary button variant for less prominent actions */
button.secondary,.button.secondary{
	background:rgba(255,255,255,0.08);
	color:#fff !important;
}
button.secondary:hover,.button.secondary:hover{
	background:rgba(255,255,255,0.12);
	color:#fff !important;
}

/* Danger button variant for destructive actions */
button.danger,.button.danger{
	background:var(--error);
	color:#fff !important;
}
button.danger:hover,.button.danger:hover{
	background:#e53935;
	color:#fff !important;
}
.alert{background:#432;border:1px solid #a55;padding:12px;border-radius:8px;margin-bottom:12px}
.success{background:#243;border:1px solid var(--success);padding:12px;border-radius:8px;margin-bottom:12px}
.links{display:flex;flex-wrap:wrap;gap:10px}
.links{list-style:none;padding:0;margin:0}
.links li{display:inline}
.links li:not(:last-child)::after{content:" • ";color:var(--muted);margin:0 8px}
.card table{width:100%;border-collapse:collapse}
.card th,.card td{border:1px solid var(--border);padding:8px;text-align:left}
.card th{background:rgba(255,255,255,0.03);font-weight:600}
.site-footer{max-width:1100px;margin:40px auto;padding:16px;color:var(--muted);border-top:1px solid var(--border);text-align:center}

/* Progress Bar Styles */
.progress-container{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.progress-header{display:flex;justify-content:space-between;align-items:center;gap:12px}
.progress-text{font-size:14px;color:var(--muted);font-weight:500}
.progress-text.complete{color:var(--success)}
.progress-bar-wrapper{width:100%;height:8px;background:rgba(255,255,255,0.05);border-radius:4px;overflow:hidden;border:1px solid var(--border)}
.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),#5ab5ff);border-radius:4px;transition:width 0.3s ease;box-shadow:0 0 8px rgba(62,166,255,0.3)}

/* Tooltip Styles */
.card-with-tooltip{position:relative}
.tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-left:6px;background:var(--accent);border:2px solid var(--panel);border-radius:50%;font-size:13px;font-weight:bold;font-style:normal;cursor:pointer;color:#000;transition:all 0.2s;flex-shrink:0;box-shadow:0 0 0 1px var(--accent)}
.tooltip-icon:hover{background:#5ab5ff;border-color:var(--panel);transform:scale(1.15);box-shadow:0 0 0 1px #5ab5ff,0 0 8px rgba(62,166,255,0.5)}
.tooltip-icon:active{transform:scale(1.05)}
.tooltip-box{background:var(--panel);border:2px solid var(--accent);border-radius:8px;padding:12px 14px;font-size:14px;line-height:1.6;max-width:300px;min-width:200px;color:var(--text);box-shadow:0 8px 24px rgba(0,0,0,0.8);white-space:normal;opacity:0;visibility:hidden;transition:opacity 0.2s,visibility 0.2s;pointer-events:auto}
.tooltip-box.show{opacity:1;visibility:visible}

@media (max-width: 768px){
	.grid{grid-template-columns:1fr}
	.top-nav{flex-wrap:wrap}
	.nav-links{flex-direction:column;width:100%;display:none}
	.nav-links.open{display:flex}
	div[style*="grid-template-columns:2fr 1fr"]{grid-template-columns:1fr !important}
	div[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important}
	div[style*="grid-template-columns:repeat(auto-fit"]{grid-template-columns:1fr !important}
	.tooltip-box{max-width:calc(100vw - 40px);min-width:250px}
	.tooltip-icon{width:24px;height:24px;font-size:14px}
}
@media (max-width: 480px){
	div[style*="position:sticky"][style*="top:16px"]{position:relative !important;top:0 !important}
}
.loading{position:relative;pointer-events:none;opacity:0.6}
.loading::after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid var(--accent);border-top-color:transparent;border-radius:50%;animation:spin 0.6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Custom scrollbar styling for webkit browsers */
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-track{background:rgba(255,255,255,0.05);border-radius:4px}
*::-webkit-scrollbar-thumb{background:rgba(62,166,255,0.3);border-radius:4px;transition:background 0.2s}
*::-webkit-scrollbar-thumb:hover{background:rgba(62,166,255,0.5)}

/* Toggle Switch */
.switch{position:relative;display:inline-block;width:44px;height:24px}
.switch input{opacity:0;width:0;height:0}
.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--border);transition:0.3s;border-radius:24px}
.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:#fff;transition:0.3s;border-radius:50%}
input:checked+.slider{background:var(--accent)}
input:checked+.slider:before{transform:translateX(20px)}
input:disabled+.slider{opacity:0.5;cursor:not-allowed}

/* Visual Navigation Builder Styles */
.visual-nav-builder{display:flex;flex-direction:column;gap:20px;min-height:calc(100vh - 200px)}
.visual-nav-bar{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:0;box-shadow:0 4px 12px rgba(0,0,0,0.3);margin-bottom:20px}
.visual-nav-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:2px solid var(--border);background:rgba(62,166,255,0.08)}
.visual-nav-title{margin:0;font-size:16px;color:var(--accent);font-weight:600}
.visual-nav-categories{display:flex;flex-wrap:wrap;gap:0;padding:0;list-style:none;margin:0;background:var(--panel)}
.visual-nav-category{position:relative;flex:1;min-width:140px;max-width:200px;border-right:1px solid var(--border)}
.visual-nav-category:last-child{border-right:none}
.visual-nav-cat-label{display:block;padding:12px 14px;font-weight:600;font-size:14px;color:var(--text);background:rgba(255,255,255,0.02);border-bottom:2px solid transparent;transition:all 0.2s;text-align:center;cursor:pointer;user-select:none}
.visual-nav-cat-label:hover{background:rgba(62,166,255,0.08);border-bottom-color:var(--accent)}
.visual-nav-cat-label.has-items{border-bottom-color:var(--accent);background:rgba(62,166,255,0.05)}
.visual-nav-dropdown{display:none;position:absolute;top:100%;left:0;right:0;background:var(--panel);border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px;box-shadow:0 4px 12px rgba(0,0,0,0.4);max-height:300px;overflow-y:auto;z-index:100;padding:8px}
.visual-nav-category:hover .visual-nav-dropdown{display:block}
.visual-nav-dropdown.active{display:block}
.visual-nav-dropdown-item{display:block;padding:8px 12px;margin:4px 0;background:rgba(255,255,255,0.03);border:1px solid var(--border);border-radius:6px;font-size:13px;color:var(--text);transition:all 0.2s;word-wrap:break-word}
.visual-nav-dropdown-item:hover{background:rgba(62,166,255,0.1);border-color:var(--accent)}
.visual-nav-category.drag-over{background:rgba(62,166,255,0.15);border-color:var(--accent)}
.visual-nav-category.drag-over .visual-nav-cat-label{background:rgba(62,166,255,0.2);border-bottom-color:var(--accent)}
.visual-cards-container{background:var(--panel);border:2px solid var(--border);border-radius:10px;padding:16px;box-shadow:0 2px 8px rgba(0,0,0,0.2)}
.visual-cards-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.visual-cards-title{margin:0;font-size:18px;font-weight:600}
.visual-cards-counter{color:var(--muted);font-size:14px}
.visual-cards-counter.complete{color:var(--success);font-weight:600}
.visual-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;min-height:120px;padding:12px;background:rgba(255,255,255,0.02);border:2px dashed var(--border);border-radius:8px}
.visual-cards-grid.empty{display:flex;align-items:center;justify-content:center;color:var(--muted);font-style:italic}
.visual-cards-grid.drag-over{background:rgba(62,166,255,0.08);border-color:var(--accent)}
.visual-card{background:var(--accent);color:#000;padding:12px;border-radius:8px;font-weight:600;font-size:14px;text-align:center;cursor:grab;transition:all 0.2s;box-shadow:0 2px 4px rgba(0,0,0,0.2);display:flex;align-items:center;justify-content:center;min-height:60px;line-height:1.4}
.visual-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(62,166,255,0.4)}
.visual-card:active{cursor:grabbing;transform:scale(0.98)}
.visual-card.dragging{opacity:0.4;cursor:grabbing}

@media (max-width: 768px){
	.visual-nav-categories{flex-direction:column}
	.visual-nav-category{max-width:100%;border-right:none;border-bottom:1px solid var(--border)}
	.visual-nav-category:last-child{border-bottom:none}
	.visual-nav-dropdown{position:relative;top:0;border-radius:0;border:none;border-top:1px solid var(--border);box-shadow:none;max-height:none}
	.visual-cards-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
}


